吃糖果问题
2016-01-19 21:19
197 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Xiaohang0qw/article/details/50544996
【OJ问题】
在编译器上执行正确,但是在OJ上提交错误。
提交代码如下
#include <stdio.h> #include <stdlib.h> int main() { int m[10],n[10],i=0,j,k; //进行十行的数据输入。 while(1) { scanf("%d %d",&m[i],&n[i]); i=i+1; if(i==10) break; } //进行十行数据的输出。 i=0; while(1) { j=m[i]%10; k=n[i]%10; if((j==2||j==3||j==7||j==8)&&(k==2||k==3||k==7||k==8)) printf("yes\n"); else printf("no\n"); //循环十次。 i=i+1; if(i==10) break; } }
我的思路:自己的思路和下面的引用的思路差不多,思考过。
汲取点:但是下面的做了一般说明,化为通用的结果。
<解题思路>
引用:http://www.cnblogs.com/Shymuel/p/4648970.html
来源
Matrix67原创
分析:这题其实不难。与萌萌的糖果那道题类似。我还是从头分析一下,给像我一样的蒟蒻引路。
我们假设两堆a,b,先吃a。
如果是a,1,显然67胜。如果是a,2,显然67挂了。如果是a,3,3=1+2,67还是挂。如果是a,4,4=2+2。67胜了。
如果是a,5或6,5=2+3,6=3+3,67胜。如果a,7,若7=2+5,s可以吃掉2然后分成2+3,67挂;若7=1+6,s可以拿走1然后分成3+3;
若7=2+5,s可以吃掉2然后分成2+3。所以a,7的话67必挂。如果是a,8,同7的情况67挂了。如果是a,9,恭喜9=2+7,s必挂无疑。
如果是a,10。10=2+8,于是你又赢了。
我们可以定义集合a={2,3,7,8},b={1,4,5,6,9,10}。
考虑两堆都大于10的情况。
(1)10*i+a,10*i+a。则67必输。
(2)10*i+a,10*i+b,你可以吃掉10*i+a,然后把10*i+b分成两堆10*i+a,67必胜。
(2)10*i+b,10*i+b,67必胜。
相关文章推荐
- 问题 1431: 分糖果
- 分糖果问题(难度:1颗星)
- 分糖果问题--蓝桥杯
- 巧解“博弈”型算法题:分糖果问题
- 糖果老字号遇到了新问题
- 糖果问题
- 5,29 吃糖果问题
- Java语言实现 问题 1431: [蓝桥杯][2014年第五届真题]分糖果(模拟)
- OJ-Candy 分糖果问题
- 均分纸牌及糖果传递问题
- 问题 1431: [蓝桥杯][历届试题]分糖果
- Leetcode 之Candy 分糖果问题。
- 问题 L: 分糖果(candy)
- 2.3趣味数学之分糖果问题
- (动态规划)最小分糖果问题
- 《算法笔记》4.3小节——算法初步->递归->问题 A: 吃糖果(oj:Codeup墓地)
- 蓝桥杯分糖果问题
- n阶楼梯上楼和吃糖果问题(dp、递归)
- 糖果传递问题
- CF Little Artem andPresents 分糖果的小问题