博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1111我和程序有个约会
阅读量:5867 次
发布时间:2019-06-19

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

5604: Kannyi打印模板 分享至QQ空间

时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte
总提交: 143            测试通过:35

描述

 

Kannyi要去沈阳参加比赛,赛前要用5106的打印机打一份模板以便赛场上使用。

奈何机房打印机出了点问题,双面打印总是不能很好完成,打印机会打印出偶数面,但是中间会夹杂白纸类似的情况,按理说他只要把它再放进去就好了,但是现在他要手动打印避免错误。他选择分段进行打印,BobHuang说那让我用代码给你生成吧。请你写一份和BobHuang一样的代码。

比如这个份模板5页,偶数页已经打印并整理好了,他需要把这三页一起打印,输出1,3,5就好了。

 

 

输入

 

 

输入数据包含多个测试实例,每个测试实例占一行,为这份模板的页数n和分成的段k。

多组数据以n=0,k=0结束。

 

 

输出

 

 

每个样例输出第一行为Case x:

然后输出为k行,第i行为第i段当要打印的页数,相邻两页用","隔开。

 

样例输入

5 1

6 2
20 3
0 0

样例输出

Case 1:

1,3,5
Case 2:
1,3
5
Case 3:
1,3,5,7
9,11,13,15
17,19

这个其实就是循环模拟题,模拟出来一行需要打印的就好。

这里数据出了锅,卡了chengyu的做法,不好意思啊。

#include
int main(){ int n,k,ca=0; while(scanf("%d%d",&n,&k),n||k) { int s=((n+1)/2+k-1)/k,f=0,i; printf("Case %d:\n",++ca); for(i=1; i<=n; i+=2) { if(f!=s-1&&i!=n&&i!=n-1)printf("%d,",i),f++;//不是最后一个数or不到换行 else printf("%d\n",i),f=0; } } return 0;}

这里还有一份验题组的代码

#include
int main(){ int n,k,i,m=1,r,t,j; while(scanf("%d %d",&n,&k),n||k) { printf("Case %d:\n",m++); if(n%2==0) { r=n/2; n--; } else r=n/2+1; if(r%k==0) r=r/k; else r=r/k+1; j=0; for(i=1; i<=n; i+=2) { if(!j) printf("%d",i); else printf(",%d",i); j++; if(j==r) { printf("\n"); j=0; } } if(j) printf("\n"); } return 0;}

5605: 祝crq生日快乐 分享至QQ空间

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 184            Accepted:164

Description

 

 

2008-2018 TOJ已经走过了10年,这10年的故事有些我们不能知道,有些在2018年校赛的演讲稿可以看到

不管你做不做ACM,每个计算机系同学都面临着一个问题,就是进行程序设计,从C语言到C++,再到C#、Java,再到汇编、PHP,你离不开的就是编程。crq对于程序设计的热爱,我认为是高过每一个人的。你对他反映TOJ的不仅限于题目问题,往往都会第一时间解答。C语言的入门也是一个十分头疼的问题,但是crq会带着大家一同走过那段艰难的行程。每年开学初他都会投入大量的经历到C语言的入门中去,很多同学都是他投入时间的受益者。甚至你可以和他聊些自己的私事,他也会帮你排忧解难满,着实一个热心肠。我相信除了我,不少同学也受益过,但是毫无疑问我们剥夺了他休息的时间,即使他帮助别人也获得了快乐。

在参加算法竞赛的时间里,我意识到了自己投入时间去学习才是最重要的,自己要踏踏实实的,一步一个脚印,往往才是学习最行之有效的方法。所以在这个投入和产出不一定成正比的竞赛中,兴趣是重要的。你可以很菜,但是你需要保持一颗永远向上的心。crq在这个竞赛中也投入了很多时间和精力,很多出色的毕业生都是玩这个的,和他悉心浇灌ACM这块土地是分不开的。

我们不需要歌功颂德,对于这些老师们来讲,他们最大的幸福就是看着我们在所学专业有所收获。以上也纯粹为学长的叨叨,也希望各位老师可以天天开心,各位同学可以快乐地度过自己的大学生活。

11月11日不仅是购物狂欢节,也是crq的生日,请为他送上生日祝福。

 

 

Input

 

 

本题没有输入。

 

 

Output

 

 

请输出"Happy Birthday!"(不包含引号)。

 

 

Sample Input

 

Sample Output

Happy Birthday!

真的是纯粹学长想说的话,输出就行啦,一起祝老师生日快乐

#include
int main(){ printf("Happy Birthday!"); return 0;}

5606: taozi的小难题 分享至QQ空间

Time Limit(Common/Java):500MS/1500MS     Memory Limit:65536KByte
Total Submit: 164            Accepted:18

Description

 

 

从前有一个抠门的国王taozi,一天他的领土受到了其它国家的侵略,于是taozi决定组建一个骑士团击退敌人。当然招募骑士也是需要花费金币的,这里就以骑士的攻击力来给金币,抠门的taozi看到了这么多骑士前来,很头痛,于是taozi找到了聪明的你,让你去帮他解决这个问题。

 

 

Input

 

 

输入多组数据,对于每组数据,第一行输入一个n,m,分别代表n个敌人和m个骑士,接下来n个数代表敌人的攻击力a,然后m个数代表雇佣骑士的攻击力b,多组数据以n=0,m=0结束。

数据规定

1≤n,m≤10000

1≤a,b≤100

 

 

Output

 

 

对于每组数据,输出国王最少需要花费多少金币雇佣骑士才能杀死所有敌人,如果不行输出-1。

 

 

Sample Input

2 3

5 4
7 8 4
2 1
5 5
10
0 0

Sample Output

11

-1

Hint

第一组数据,taozi选择第3号骑士打败2号敌人,选择第1号骑士打败1号敌人,总共花费11元。

第二组数据,taozi无论怎么选都打不过敌人。

这个题目本来是sort,但是

 因为攻击力最多100 ,所以开始开两个100的数组 ,然后100^2完事 
#include
int main(){ int i,j,k,n,m,x; while(scanf("%d%d",&n,&m)!=EOF,n||m) { int a[105]={
0},b[105]={
0}; for(i=0;i
0) { b[k]--; sum+=k; f=1; break; } } if(f==0)break; } if(f==0)break; } if(f==0)printf("-1\n"); else printf("%d\n",sum); } return 0;}

 

5607: taozi的签到题 分享至QQ空间

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 637            Accepted:75

Description

 

 

题目很简单,就是求1到n中能被2或3或6或8整除的数有几个。

 

 

Input

 

 

多组输入,每行输入一个正整数n(n<=1000000),以n为0结束(组数在10000左右)。

 

 

Output

 

 

输出1到n中能被2或3或6或8整除的数的个数。

 

 

Sample Input

10

0

Sample Output

7

查询比较多,所以大家疯狂wa

我们可以理智分析下,是8的倍数一定是2的倍数,6的倍数一定是2和3的倍数

所以所求就是2的倍数个数-3的倍数个数+6的倍数个数

#include
int main(){ int n; while(scanf("%d",&n),n)printf("%d\n",n/2+n/3-n/6); return 0;}

或者预处理,预处理就是提前处理出答案,下一次还在上一次的基础上进行判断

#include 
#define N 1000005int a[N];int main(){ int n,i; for(i=1;i

5608: 单身狗沙漠逃生 分享至QQ空间

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 20            Accepted:5

Description

 

 

1111是个有趣的节日,某单身狗没钱可花,没事可做。

1541401467161087125.png

沙漠里有一条很长的公路,单身狗想沿着公路进沙漠去探险。每走x公里路后,单身狗就要消耗x份食物(x为大于0的分数)。单身狗共准备了n份食物,但他身上最多背负m份食物(n%m为0,而且n/m<11)。如果食物可以在路边存放,为保证能原路返回出发点,单身狗最远能进入沙漠多少公里?

 

 

Input

 

 

输入数据包含多个测试实例,每个测试实例占一行,为这份食物份数n和最多背负的食物数m。(n<1111)

多组数据以n=0,m=0结束。

 

 

Output

 

 

每组数据输出一行,代表单身最多进入沙漠的总公里数,为一最简分数,即分子和分母互质。

 

 

Sample Input

600 120

1 1
0 0

Sample Output

137/1

1/2

Hint

 

这是一个极端构造的问题,我们可以尝试去构造极端条件并求解。

由于单身狗每次只能背负120份食物,故他要从出发点出发5次。

每次出发走一段距离后,就将食物放在路边做补充,然后返回出发点背负食物。 

但是这个距离要走几次是固定的,比如第一段路就要走10 次,第二段路要走8次,第三段路要走6次,第四段路要走4次,第五次路要走2次。但是每段路的消耗的食物数和是固定的,均为120份。

所以距离为120/10+120/8+120/6+120/4+120/2=137。

所以题目变为了分数加法(雾)?好人做到底,偷偷告诉你,1~10的最小公倍数为2520。

这个题目害怕大家想不到做法,所以提示里题解了一波。

其实就是第一段路要走2*(n/k)次,消耗k份食物...最后一段路走2次,消耗k份食物。

合并同类项借助2050的做法

#include
int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int n,k; while(scanf("%d%d",&n,&k),n||k) { int a=0,b=2*2520,i; for(i=1;i<=n/k;i++)a+=k*2520/i; int t=gcd(a,b); printf("%d/%d\n",a/t,b/t); }}

分数加法的做法

#include
int a,b;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int d(){ int t=gcd(a,b); a/=t,b/=t;}int main(){ int n,m,i; while(~scanf("%d%d",&n,&m),n,m) { a=m,b=2; for(i=2; i<=n/m; ++i)a=2*a*i+m*b,b*=2*i,d(); printf("%d/%d\n",a,b); }}

 

转载于:https://www.cnblogs.com/BobHuang/p/9942905.html

你可能感兴趣的文章
央行下属的上海资信网络金融征信系统(NFCS)签约机构数量突破800家
查看>>
[转] Lazy evaluation
查看>>
常用查找算法总结
查看>>
grep 零宽断言
查看>>
被神话的大数据——从大数据(big data)到深度数据(deep data)思维转变
查看>>
修改校准申请遇到的问题
查看>>
【DL-CV】浅谈GoogLeNet(咕咕net)
查看>>
python大佬养成计划----win下对数据库的操作
查看>>
监控软件zabbix之安装
查看>>
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv7 armv7s)
查看>>
Exchange Server 2016 独立部署/共存部署 (七)—— DAG功能测试
查看>>
对RTMP视频流进行BitmapData.draw()出错的解决办法
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
Spark修炼之道(基础篇)——Linux大数据开发基础:第九节:Shell编程入门(一)...
查看>>
Duplicate Symbol链接错误的原因总结和解决方法[转]
查看>>
适配器模式
查看>>
建立低权限的ftp帐号
查看>>
htpasswd
查看>>
Android窗口机制(三)Window和WindowManager的创建与Activity
查看>>
Android 编译出错解决
查看>>