diff --git a/1790_roundgetnum/Readme.md b/1790_roundgetnum/Readme.md new file mode 100644 index 0000000..dcdd3e2 --- /dev/null +++ b/1790_roundgetnum/Readme.md @@ -0,0 +1,23 @@ +# 环形取数游戏 + +[问题描述] + 有一个取数的游戏。初始时,给出一个环,环上的每条边上都有一个非负整数。这些整数中至少有一个 0。然后,将一枚硬币放在环上的一个节点上。两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流取数,取数的规则如下: + (1)选择硬币左边或者右边的一条边,并且边上的数非 0; + (2)将这条边上的数减至任意一个非负整数(至少要有所减小); + (3)将硬币移至边的另一端。 + 如果轮到一个玩家走,这时硬币左右两边的边上的数值都是 0,那么这个玩家就输了。 +如下图,描述的是 Alice 和 Bob 两人的对弈过程,其中黑色节点表示硬币所在节点。结果图(d)中,轮到 Bob 走时,硬币两边的边上都是 0,所以 Alcie 获胜。 + 现在,你的任务就是根据给出的环、边上的数值以及起点(硬币所在位置),判断先走方是否有必胜的策略。 + +[输入格式] +第一行一个整数 N(N≤20),表示环上的节点数。 第二行 N 个数,数值不超过 30,依次表示 N 条边上的数值。硬币的起始位置在第一条边与最后一条边之间的节点上。 + +[输出格式] +仅一行。若存在必胜策略,则输出“YES”,否则输出“NO”。 + +[输入样例] +4 +2 5 3 0 + +[输出样例] +YES \ No newline at end of file diff --git a/1790_roundgetnum/doc/Readme.md b/1790_roundgetnum/doc/Readme.md new file mode 100644 index 0000000..b4f8d75 --- /dev/null +++ b/1790_roundgetnum/doc/Readme.md @@ -0,0 +1,3 @@ +# 标题 + +* 内容 \ No newline at end of file diff --git a/1790_roundgetnum/doc/鐜舰鍙栨暟闂.pdf b/1790_roundgetnum/doc/鐜舰鍙栨暟闂.pdf new file mode 100644 index 0000000..d7cfd78 Binary files /dev/null and b/1790_roundgetnum/doc/鐜舰鍙栨暟闂.pdf differ diff --git a/1790_roundgetnum/main.cpp b/1790_roundgetnum/main.cpp new file mode 100644 index 0000000..f39ad54 --- /dev/null +++ b/1790_roundgetnum/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + std::cout << "Hello Easy C++ project!" << std::endl; +} diff --git a/1790_roundgetnum/main.exe b/1790_roundgetnum/main.exe new file mode 100644 index 0000000..fc4df42 Binary files /dev/null and b/1790_roundgetnum/main.exe differ diff --git a/1790_roundgetnum/roundgetnum.cpp b/1790_roundgetnum/roundgetnum.cpp new file mode 100644 index 0000000..3cc0335 --- /dev/null +++ b/1790_roundgetnum/roundgetnum.cpp @@ -0,0 +1,30 @@ +#include +using namespace std; +int main() +{ + int n, ans = 0, k = 0, a[21] = { 0 }; + cin >> n; + for (int i = 1; i <= n; i++) { + cin >> a[i]; + } + for(int i=1;i<=n;i++){ + if(a[i]==0){ + if(i%2==0){ + cout<<"YES"; + return 0; + } + break; + } + } + for (int i = n; i >= 1; i--) { + k=n-i+1; + if (a[i] == 0) { + if (k % 2 == 0) { + cout<<"YES"; + return 0; + } + break; + } + } + cout<<"NO"; +} diff --git a/1790_roundgetnum/roundgetnum.exe b/1790_roundgetnum/roundgetnum.exe new file mode 100644 index 0000000..f9f0dec Binary files /dev/null and b/1790_roundgetnum/roundgetnum.exe differ diff --git a/1790_roundgetnum/test/In2.txt b/1790_roundgetnum/test/In2.txt new file mode 100644 index 0000000..e16d8b0 --- /dev/null +++ b/1790_roundgetnum/test/In2.txt @@ -0,0 +1,2 @@ +20 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/1790_roundgetnum/test/in.txt b/1790_roundgetnum/test/in.txt new file mode 100644 index 0000000..4706f71 --- /dev/null +++ b/1790_roundgetnum/test/in.txt @@ -0,0 +1,2 @@ +4 +0 5 3 2 \ No newline at end of file diff --git a/1790_roundgetnum/test/out.txt b/1790_roundgetnum/test/out.txt new file mode 100644 index 0000000..38be170 --- /dev/null +++ b/1790_roundgetnum/test/out.txt @@ -0,0 +1,12 @@ +## z:\Chao\src\1790_roundgetnum\test\in.txt +2020/03/23 周一 21:24:34.58 +YES +----------------------------------------------- +Process exited after 160 ms with return value 0 + +## z:\Chao\src\1790_roundgetnum\test\In2.txt +2020/03/23 周一 21:24:34.58 +NO +----------------------------------------------- +Process exited after 90 ms with return value 0 +