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


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<bits/stdc++.h>
 3 using namespace std;
 4 typedef long long  ll;
 5 typedef pair<ll,ll> 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<int,int> pii;
20 #define sec second
21 #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"<<endl;
51             else  cout<<"NO"<<endl;
52
53        }
54     }
55  return 0;
56 }
57
58 /*__________
59  analysis: 一句话:只要存在两种语言的差值能够拆分成若干个3就可以通过依次分解这若干个3使其到达yes。 否则不能。
60   设三种分别为a,b,c,考虑三个数字的两两之差t1,t2,t3,(现在ti的差有非常多的可能,下面简化分类。)
61             考虑存在ti取哪些值能够yes, 只要有一个ti=0 yes,下面考虑当ti=1,2 ,3....
62             事实上ti=3 6 9.。。  为其充分必要条件。
63             充分: 先证差为3: 设 x  x+3  y(y>=0)
64                           则可以在前两个中均取x个,状态转化为 0 3 y+2x
65                           若y+2x==0,已经yes.否则,从y+2x和3中各取1个,状态转化为 2 2 y+2x-1 显然yes.
66                     现在考虑差为6 9 ... 同样的设: x x+3+3+3+3... y
67                           同样的均取x, 0 3+3+3... y+2x
68                           同样,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+2
75                      每次只洗脑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 */ 
时间: 2024-08-06 03:19:06

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

相信我这是水题ny1313

相信我这是水题 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,萌萌的师弟师妹们们经常会让pigofzhou帮他们Debug,因为师弟师妹们打代码使用编程语言的种类千奇百怪,pigofzhou为此很头疼.现在假设师弟师妹们只喜欢Java或者C++或者C,因为他希望所有人都学相同的编程语言,只有这样pigofzhou教的时候才相对轻松,经过彻夜研究发现,他可以通过自己的花言巧语使两个不同爱好的人的爱好变

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

2015南阳CCPC L - Huatuo&#39;s Medicine 水题

L - Huatuo's Medicine Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Huatuo was a famous doctor. He use identical bottles to carry the medicine. There are different types of medicine. Huatuo put medicines into the bottles and chain these b

sdut 2841 Bit Problem (水题)

题目 贴这个题是因为看题解有更简单的方法, 我做的时候是直接算的, 也很简单. 贴一下题解吧: 如果一个整数不等于 0,那么该整数的二进制表示中至少有一位是 1. 这个题结果可以直接输出 x - (x&(x-1)); 因为x-1 之后二进制下,就是最右边的1变成了0, 最右边的1的 右边所有的0变成了1, 不影响最左边. 我的代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4

sdut 2413:n a^o7 !(第三届山东省省赛原题,水题,字符串处理)

n a^o7 ! Time Limit: 1000MS Memory limit: 65536K 题目描述 All brave and intelligent fighters, next you will step into a distinctive battleground which is full of sweet and happiness. If you want to win the battle, you must do warm-up according to my inst

杭电(hdu)2053 Switch Game 水题

Switch Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13113    Accepted Submission(s): 7970 Problem Description There are many lamps in a line. All of them are off at first. A series of o

4.7-4.9补题+水题+高维前缀和

题目链接:51nod 1718 Cos的多项式  [数学] 题解: 2cosx=2cosx 2cos2x=(2cosx)^2-2 2cos3x=(2cosx)^3-3*(2cosx) 数归证明2cos(nx)能表示成关于2cosx的多项式,设为f(n) f(1)=x,f(2)=x^2-2(其中的x就是2cosx) 假设n=1~k时均成立(k>=3) 当n=k+1时 由cos((k+1)x)=cos(kx)cos(x)-sin(kx)sin(x) cos((k-1)x)=cos(kx)cos(x)

历年NOIP水题泛做

快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时候最小点击次数 递推的话对于上升的情况只做一次,后面几次在后面再做.. #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using namespace st

[ZPG TEST 114] 阿狸的英文名【水题】

1.      阿狸的英文名 阿狸最近想起一个英文名,于是他在网上查了很多个名字.他发现一些名字可以由两个不同的名字各取一部分得来,例如John(约翰)的前缀 "John"和Robinson(鲁滨逊)的后缀 "son" 连在一起就是Johnson. 现在他找到了两个喜欢的名字(名字可看作字符串),用A和B表示,他想知道取A的一个非空前缀和B的一个非空后缀,连接在一起能组成多少不同的字符串. 输入格式 输入两行,分别表示字符串A和B:字符串只包含小写英文字母. 输出格