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 ____________________
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
#define pb(x) push_back(x)
#define ss(x) scanf("%s",x)
#define sd(x) scanf("%d",&x)
#define sll(x) scanf("lld",&x)
typedef unsigned long long ull;
#define mem(A, X) memset(A, X, sizeof A)
#define ford(i,l,u) for(ll (i)=(ll)(l);(i)>=(ll)(u);--(i))
#define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)
#define fori(i,l,u) for(ll (i)=(ll)(l);(i)<=(ll)(u);++(i))
#define delete_this freopen("in.txt","r",stdin)
#define sd2(x,y) scanf("%d%d",&x,&y)
#define slf(x) scanf("%lf",&x)
#define sc(x) scanf("%c",&x)
typedef pair<int,int> pii;
#define sec second
#define fir first const ll mod=1e9+7;
const ll maxn=1e5+10; int main()
{
delete_this;
int tc;
while(cin>>tc)
{
fori(kase,1,tc)
{
int a,b,c;
cin>>a>>b>>c; int flag=0; int t=abs(b-c);
if(t%3==0) flag=1; t=abs(a-c);
if(t%3==0) flag=1; t=abs(a-b);
if(t%3==0) flag=1; //if(a==c||a==b||b==c) flag=1; if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl; }
}
return 0;
} /*__________
analysis: 一句话:只要存在两种语言的差值能够拆分成若干个3就可以通过依次分解这若干个3使其到达yes。 否则不能。
设三种分别为a,b,c,考虑三个数字的两两之差t1,t2,t3,(现在ti的差有非常多的可能,下面简化分类。)
考虑存在ti取哪些值能够yes, 只要有一个ti=0 yes,下面考虑当ti=1,2 ,3....
事实上ti=3 6 9.。。 为其充分必要条件。
充分: 先证差为3: 设 x x+3 y(y>=0)
则可以在前两个中均取x个,状态转化为 0 3 y+2x
若y+2x==0,已经yes.否则,从y+2x和3中各取1个,状态转化为 2 2 y+2x-1 显然yes.
现在考虑差为6 9 ... 同样的设: x x+3+3+3+3... y
同样的均取x, 0 3+3+3... y+2x
同样,y+2x=0,yes.否则,先考虑单个3,从y+2x与3中各取1,状态2 y+2x 2+3+3...
此时,取第一个和第三个中的2,状态转化为0 y+2x+4 0+3+3...,
分析这部分的效果: 三的个数被这一操作减少了一,即差值多个三
可以不断执行这个操作,最终到达上面的差值一个三的状态。 必要性: 反证:将a b c 对3取模以后划归,只考虑不存在两个数字相等的情况,只有0 1 2 这一种情况,
于是,0 1 2 只能转移到 2 0 1 等价于未转移。所以只要在证可以取模即可:3x 3y+1 3z+2
每次只洗脑2个人是最基本的操作(所以很多人的情况是这基本操作的多次执行),
1 2 3x-1 3y 3z+3+1
1 3 3x-1 3y+3 3z+1
2 3 3x+2 3y 3z+1 都可以写成3u+2 3v 3w+1,也就是说所有可能转移到的状态始终维持
在这种类似(0 1 2)的状态,所以永远转移不到yes.
debug :
note :
*/

gdutcode 1195: 相信我这是水题 GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,的更多相关文章

  1. Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)

    Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...

  2. POJ 3176 Cow Bowling (水题DP)

    题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和. 析:真是水题,学过DP的都会,就不说了. 代码如下: #include <cstdio> #i ...

  3. Codeforces Gym 100286G Giant Screen 水题

    Problem G.Giant ScreenTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/con ...

  4. Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题

    B. Running Student 题目连接: http://www.codeforces.com/contest/9/problem/B Description And again a misfo ...

  5. hdu4791水题

    题意:       打印东西,给你区间和每个区间的价格,然后输入任务张数,输出最少花费..    题解:       昨晚的小测试就有这个题目,当时蒙B了,怎么也读不懂题目,一直纠结怎么把150拆成1 ...

  6. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  7. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  8. ACM :漫漫上学路 -DP -水题

    CSU 1772 漫漫上学路 Time Limit: 1000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Submit ...

  9. ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)

    1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 112[ ...

随机推荐

  1. DotNetBar for Windows Forms 11.8.0.8冰河之刃重打包版

    关于 DotNetBar for Windows Forms 11.8.0.8_冰河之刃重打包版 基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DL ...

  2. 初探canvas

    canvas是html5新增的一个专用于图形处理的标签,利用canvas可以实现大部分图形操作canvas的一些基本操作与其他图形编程工具类似,包含:各种形状的边框.路径绘制和填充,画布属性调整,样式 ...

  3. ppp数据帧的格式

    参考http://blog.chinaunix.net/uid-11639156-id-2379044.html

  4. 在sqlserver中做fibonacci(斐波那契)规律运算

    --利用sqlserver来运算斐波那契规律 --利用事物与存储过程 declare @number intdeclare @A intdeclare @B intdeclare @C int set ...

  5. 使用CSS3动画模拟实现小球自由落体效果

    使用纯CSS代码模拟实现小球自由落体效果: html代码如下: <div id="ballDiv"> <div id="ball">&l ...

  6. 线程的2个ID

    我们知道进程ID是操作系统调度的最小单位,有时候根据业务的需要,我们会使用到多线程技术,当创建了多个线程时,也会有一个线程ID,那这个线程ID和进程ID有什么不一样吗? 其中,线程组的线程ID是属于N ...

  7. run方法和start方法的不同

    run 方法只不过是对对象方法的简单调用,在主线程中的执行时间是固定的 而start方法是开启一个线程,起执行时间是不固定的.

  8. Outlook查找未读邮件

    1.查找新邮件的未读邮件,可以在下图中查找 2.恢复已删除邮件,如果邮件是未读邮件,在上图中是查找不到,只能通过视图去查找 步骤2内容摘自百度

  9. php+mysql的微信文章发布平台

    如何在微信上发表丰富图文的文章? 最近在新浪云平台上做了一个php+mysql的微信文章发布平台,丫丫说. 在线编辑文章,扫一扫即可分享到微信,发到朋友圈,非常简单! http://yayashuo. ...

  10. Node连接MySQL

    http://blog.fens.me/nodejs-mysql-intro/ http://czpae86.iteye.com/blog/1636302 http://www.cnblogs.com ...