1602: 再次签到 //注 本题有错!但是就这么AC了! 应该是DP不是贪心!
来源:互联网 发布:ipad软件的目录 编辑:程序博客网 时间:2024/05/16 08:39
1602: 再次签到时间限制: 3 Sec 内存限制: 128 MB提交: 212 解决: 117[提交][状态][讨论版]题目描述经过一段时期的观察,老师觉得ACM实验室的利用率太低了,于是决定启用老套的签到积分制度,但考虑到ACMer的成长必须持之以恒,因此,专门设计了一种激励连续签到的规则。签到积分规则如下:1)每天只要来到ACM实验室学习并录入指纹,即算签到成功,可获取相应的积分;若某天未签到,则当天计0个积分。2)连续签到时,第1天签到可获取1个积分,第2天签到可获取2个积分,……,第n天可获取n个积分。3)如果中途未签到,则再签到时,连续天数重新从1开始计算。自从有了积分制度后,ACM实验室的利用率大大的提高。有一天集训队队长在签到后向大家出了一个难题,她向大家亮出了自己的签到积分总和,然后要大家算出她至少要签到多少天,并算出从开始签到到最后签到之间至少有多少天未签到。输入有多组测试数据;每行输入1个正整数n(1<=n<=500500)。输出与输入的测试数据相对应,每行输出2个数据,一个是签到的最少天数,一个是中途未签到的最少天数,2个数用一个空格隔开。样例输入5822252728样例输出4 25 27 19 29 17 0提示来源Derson,2014年湖南科技大学校赛来源: http://acm.hnust.edu.cn/JudgeOnline/problem.php?id=1602
//简单思路 死命的贪心#include <cstdio>void Cal(int n){ int k=0,days=0,disdays=0; while(k<=n) { for(int i=1;i<=n;i++) { if(k==n) break; //否则k==n 时在下面语句后会多一天disday才退出 if(k+i>n) {disdays++;break;} else {days++;k+=i;} } if(k==n) break; //补上一句否则可能卡在k==n时不跳出循环 } printf("%d %d\n",days,disdays);}int main(){ int n; while(~scanf("%d",&n)) Cal(n); return 0;}
0 0
- 1602: 再次签到 //注 本题有错!但是就这么AC了! 应该是DP不是贪心!
- 就这么毕业了
- 就这么进来了
- 再次签到
- 就但是彩排了。
- 折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了
- 就这么过了一天
- 圣诞节就这么过了.........
- 大学生活就这么结束了
- 哟,就这么走过来了
- 平安夜,就这么过了
- 嗯~就这么开始了
- 时间就这么溜走了
- 这么快就期末了
- eclipse对XML文件不是支持的很好,有可能xml文件有错,但是eclipse不报错。
- hdu 2993 斜率问题,但是不是DP
- 夏天最美丽的就应该是荷花了
- 今天在看程序,看到了break ,C还不是很好,就查了一下。再次记录一下。以后可以随时查看。
- 1601: 名字缩写
- class prototype 共享内存
- Android_数据库操作_笔记
- 利用mybatis-generator自动生成代码
- 华为信息机与c3po包的冲突
- 1602: 再次签到 //注 本题有错!但是就这么AC了! 应该是DP不是贪心!
- Palindrome Partitioning II
- 单例
- 1611: 签到题
- 升入理解javaProxy
- HTTP请求方法
- Golang之chan/goroutine
- java web 开发组件 vs 框架spring大总结
- mongodb sharding Tag控制数据分片