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
Sample Output
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,是冰点奇迹队的主代码手,的更多相关文章
- Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)
Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...
- POJ 3176 Cow Bowling (水题DP)
题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和. 析:真是水题,学过DP的都会,就不说了. 代码如下: #include <cstdio> #i ...
- Codeforces Gym 100286G Giant Screen 水题
Problem G.Giant ScreenTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/con ...
- 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 ...
- hdu4791水题
题意: 打印东西,给你区间和每个区间的价格,然后输入任务张数,输出最少花费.. 题解: 昨晚的小测试就有这个题目,当时蒙B了,怎么也读不懂题目,一直纠结怎么把150拆成1 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- ACM :漫漫上学路 -DP -水题
CSU 1772 漫漫上学路 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Submit ...
- ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)
1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 154 Solved: 112[ ...
随机推荐
- jquery点击获取子元素ID值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- c/c++面试题(8)memcopy/memmove/atoi/itoa
1.memcpy函数的原型: void* memcpy(void* dest,cosnt void* src,size_t n); 返回值:返回dest; 功能:从源内存地址src拷贝n个字节到des ...
- node_modules\typescript\lib 未指向有效的 tsserver 安装 将禁用TypeScript 语言功能
Ionic2 项目中经常遇到这个问题 每次都找半天无果. 简单记录一下 粗暴的解决办法: 卸载ts并从新安装即可 //卸载typescript npm uninstall typescript // ...
- MVC 本地运行可以发布到IIS 报Sorry, an error occurred while processing your request.解决方案
发布MVC程序的时候经常遇到这种情况,每次都要搞好久才找到问题.最终找到解决办法: 报500错误大部分的情况还是程序存在异常,但全部被MVC错误拦截成了友好提示, 只要在Web.config下添加一行 ...
- 为什么匿名内部类参数必须为final类型
1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自 ...
- 关于seajs模块化的搭建
搭建seajs这个鬼吧!好像必须要用服务器起.... 然后我开始弄了个nodejs服务器. 安装nodejs:在网站上下载,安装,安装.. 打开命令行,输入cdm. 输入node -v ,输出版本信息 ...
- Java源码分析系列
1) 深入Java集合学习系列:HashMap的实现原理 2) 深入Java集合学习系列:LinkedHashMap的实现原理 3) 深入Java集合学习系列:HashSet的实现原理 4) 深入Ja ...
- Mysql 根据时间戳、时间按年月日分组统计
create_time时间格式 SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY week ...
- 2016-7-15(1)使用gulp构建一个项目
gulp是前端开发过程中自动构建项目的工具,相同作用的还有grunt.构建工具依 靠插件能够自动监测文件变化以及完成js/sass/less/html/image/css/coffee等文件的语法检查 ...
- dom2和dom3
第十二章 DOM2和DOM3 一.DOM变化 1.针对XML命名空间的变化 2.其他方面的变化 二.样式 1.访问元素的样式 .style 1)DOM样 ...