BUPT Summer Journey #test1 B
来源:互联网 发布:数据分组分析法案例 编辑:程序博客网 时间:2024/04/30 09:03
B. 学姐去学车 2014新生暑假个人排位赛01
题目描述
趁着放假,学姐去学车好带学弟去兜风。但是学车真的很辛苦,每天五点半就要起床赶班车,但是学姐的教练更辛苦,他们要相同的时间到而且日日如此。于是温柔的学姐关切的问了他们的休息情况,教练告诉她,他们两个人倒班教学姐,每个教练每上
输入格式
输入开始为数据组数
输出格式
对于每个询问
输入样例
15 336913
输出样例
212
思路:题目很难读懂。其实这道题的意思是说两个教练是不放假一直上班的,只是当一个教练放假时另一个教练来教到他放假为止。
然后可以作一个区间寻找规律
[1,n]教练1
[n+1,m+n]教练2
[m+n+1,2n+1]教练1
[2n+2,m+2n+1]教练2
[m+2n+2,3n+2]教练1
[3n+3,m+3n+2]教练2
不难发现,除了第一次长度为m+n以外其余区间的长度均为n+1.故分两种情况.
(1)t<=m+n时,[1,n]为第一个教练教,[n+1,m+n]为第二个教练教练教。
(2)t>m+n时,对每一个周期n+1内,前n-m+1天是第一个教练教,后m天是第二个教练教。
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;int n,m,q,t;int main(){ #ifdef LOCAL freopen("input.txt","r",stdin); #endif int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); scanf("%d",&q); for(int i=1;i<=q;i++) { scanf("%d",&t);//int t0=t; //cout<<t<<endl; if(t>n+m) { t=t-(n+m); if(t%(n+1)!=0)t=t%(n+1); else t=n+1; if(t<=n-m+1)printf("1\n"); else printf("2\n"); } else { if(t<=n)printf("1\n"); else printf("2\n"); } } } return 0;}
- BUPT Summer Journey #test1 B
- BUPT Summer Journey #test1 A
- BUPT Summer Journey #test1 C
- BUPT Summer Journey #test1 D
- BUPT Summer Journey #test1 E
- BUPT Summer Journey #test2 B
- BUPT Summer Journey #test3 B
- BUPT Summer Journey #test4 B
- BUPT Summer Journey #test5 B
- BUPT Summer Journey #test6 B
- BUPT Summer Journey #test7 B
- BUPT Summer Journey #test8 B
- BUPT Summer Journey #test9 B
- BUPT Summer Journey #test11 B
- BUPT Summer Journey #test2 A
- BUPT Summer Journey #test2 C
- BUPT Summer Journey #test2 D
- BUPT Summer Journey #test2 E
- codeforces#FF DIV2C题DZY Loves Sequences(DP)
- js判断上传控件FileUpload是否选择和文件类型
- solr :term 查询, phrase查询, boolean 查询
- JAVA_WEB项目之Service层抽取成BaseService和BaseServiceImpl
- 【SCM】CI配置收集
- BUPT Summer Journey #test1 B
- Android中的onTouch()事件如何区分单击事件和滑动事件
- vc真彩工具条的实现
- single number
- 微信加入“微社区” Discuz!发力移动社交
- poj-1325
- 寻找汉密尔顿回路(java版)
- vsnprintf 打印变长参数
- JQuery了。。。