博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gdutcode 1195: 相信我这是水题 GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,...
阅读量:5051 次
发布时间:2019-06-12

本文共 3099 字,大约阅读时间需要 10 分钟。

 

1195: 相信我这是水题

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 821  Solved: 219
 

Description

 

GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,萌萌的师弟师妹们们经常会让pigofzhou帮他们Debug,因为师弟师妹们打代码使用编程语言的种类千奇百怪,pigofzhou为此很头疼。现在假设师弟师妹们只喜欢Java或者C++或者C,因为他希望所有人都学相同的编程语言,只有这样pigofzhou教的时候才相对轻松,经过彻夜研究发现,他可以通过自己的花言巧语使两个不同爱好的人的爱好变成另一个爱好(比如他对一个喜欢Java的和一个喜欢C++的人使用花言巧语,那么这两个人都会喜欢C语言) 那么问题来了,聪明的pigofzhou能否通过若干次花言巧语来让所有人都学同一门编程语言。

 

Input

 

第一行包含了一个整数T-----表示输入数据为T组(T <= 100)。 每组测试样例有3个数字a,b,c;分别代表喜欢Java,喜欢C++,喜欢C的人数。(输入数据范围为int型)

 

Output

 

如果pigofzhou能够通过若干次改变使得所有人学相同的编程语言,输出“YES”,否则输出“NO”(不带引号);

 

Sample Input

 
1 1 1 1
 

Sample Output

 
YES
 

HINT

 

 

人数范围为int型

 

 

Source

1 /* gdutcode 1195 ____________________ 2 #include
3 using namespace std; 4 typedef long long ll; 5 typedef pair
pll; 6 #define pb(x) push_back(x) 7 #define ss(x) scanf("%s",x) 8 #define sd(x) scanf("%d",&x) 9 #define sll(x) scanf("lld",&x)10 typedef unsigned long long ull; 11 #define mem(A, X) memset(A, X, sizeof A)12 #define ford(i,l,u) for(ll (i)=(ll)(l);(i)>=(ll)(u);--(i))13 #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)14 #define fori(i,l,u) for(ll (i)=(ll)(l);(i)<=(ll)(u);++(i))15 #define delete_this freopen("in.txt","r",stdin)16 #define sd2(x,y) scanf("%d%d",&x,&y)17 #define slf(x) scanf("%lf",&x)18 #define sc(x) scanf("%c",&x)19 typedef pair
pii;20 #define sec second21 #define fir first 22 23 const ll mod=1e9+7; 24 const ll maxn=1e5+10; 25 26 int main()27 {28 delete_this; 29 int tc;30 while(cin>>tc)31 { 32 fori(kase,1,tc)33 {34 int a,b,c;35 cin>>a>>b>>c;36 37 int flag=0;38 39 int t=abs(b-c);40 if(t%3==0) flag=1;41 42 t=abs(a-c);43 if(t%3==0) flag=1;44 45 t=abs(a-b);46 if(t%3==0) flag=1;47 48 //if(a==c||a==b||b==c) flag=1;49 50 if(flag) cout<<"YES"<
=0)64 则可以在前两个中均取x个,状态转化为 0 3 y+2x65 若y+2x==0,已经yes.否则,从y+2x和3中各取1个,状态转化为 2 2 y+2x-1 显然yes.66 现在考虑差为6 9 ... 同样的设: x x+3+3+3+3... y67 同样的均取x, 0 3+3+3... y+2x68 同样,y+2x=0,yes.否则,先考虑单个3,从y+2x与3中各取1,状态2 y+2x 2+3+3... 69 此时,取第一个和第三个中的2,状态转化为0 y+2x+4 0+3+3...,70 分析这部分的效果: 三的个数被这一操作减少了一,即差值多个三71 可以不断执行这个操作,最终到达上面的差值一个三的状态。72 73 必要性: 反证:将a b c 对3取模以后划归,只考虑不存在两个数字相等的情况,只有0 1 2 这一种情况,74 于是,0 1 2 只能转移到 2 0 1 等价于未转移。所以只要在证可以取模即可:3x 3y+1 3z+275 每次只洗脑2个人是最基本的操作(所以很多人的情况是这基本操作的多次执行), 76 1 2 3x-1 3y 3z+3+1 77 1 3 3x-1 3y+3 3z+1 78 2 3 3x+2 3y 3z+1 都可以写成3u+2 3v 3w+1,也就是说所有可能转移到的状态始终维持79 在这种类似(0 1 2)的状态,所以永远转移不到yes.80 debug : 81 note : 82 */

 

转载于:https://www.cnblogs.com/paulzjt/p/6138751.html

你可能感兴趣的文章
JavaScript特效源码(3、菜单特效)
查看>>
Linux常用命令总结
查看>>
yii模型ar中备忘
查看>>
C#线程入门
查看>>
CSS清除浮动方法
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>