UESTC 1137 邱老师选妹子 dp:?这个难道不是暴力法
2016-02-28 18:28
423 查看
邱老师选妹子
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
Submit
Status
邱老师长得帅这是人尽皆知,于是追他的妹子就会很多。
但是你知道,邱老师是一个很专一的人,所以他心里面只能有一个人。
于是他决定从追他的众多妹子里挑选一个出来。于是酱神给邱老师出来一个主意,已知有一些妹子,恰好可以给她们从l到r排号,使得每一个妹子有
单独的数字,而正好有r-l+1个妹子。
酱神说,我们不能要运气不好的女孩,而酱神又给了两个数字62和4,如果妹子的排号里面有62(必须是连续的)或4,那么就排除他现在给你l和r,问
有多少妹子可以有幸在第一轮留下。
Input
输入的都是整数对l、r(0<l≤r<1000000),如果遇到都是0的整数对,则输入结束。
Output
每组数据输出占一行,对于每个l和r 输出有多少个妹子可以在第一轮不被排除
Sample input and output
Sample Input | Sample Output |
---|---|
1 100 0 0 | 80 |
Hint
不好的数字为所有含有4或62的号码。例如:62315 73418 88914
都属于不好的。但是,61152虽然含有6和2,但不是62连号
Source
2015 UESTC Training for Dynamic ProgrammingThe question is from here.
My Solution
暴力法分分钟过,只是不知道为什么,这个是在dp专题,☺☺暴力的话 10^6*6,不会超时的。
从 l 到 r 枚举,分别用函数处理每个i
如果 i %10 为4,ans--;return
如果为2,则i /=`10;在看看是6则ans--;return;否则递归下去
但递归出 i == 0,则递归结束
#include <iostream> #include <cstdio> using namespace std; int ans; void solve(int x) { if(x == 0) return; if(x % 10 == 4) {ans--;return;} else if(x % 10 == 2){ x /= 10;if(x %10 == 6) {ans--;return;} else solve(x);} else solve(x/=10); } int main() { int l, r; while(scanf("%d%d", &l, &r)){ if(l == 0 && r == 0) break; ans = r-l+1; for(int i = l; i <= r; i++){ solve(i); } printf("%d\n", ans); } return 0; }
Thank you!
相关文章推荐
- 13.UiAutomator 辅助APK的使用
- 12.UiAutomator 获取系统信息
- 11.UiAutomator 相关JAVA知识
- RANGE MINIUM/MAXIUM QUERY问题
- iOS:UITextView、UITextField检测用户是否完成输入的选择
- 10.Android UiAutomator Junit 断言函数的使用
- ContentValues的使用
- ContentValues的使用
- DUILIB 界面基本知识
- 9.Android UiAutomator正则表达式的使用
- RequestContextListener有什么用
- GUI
- 8.Android_UiAutomator 报告查看
- 解决 web 字符编码乱码问题-----charSet 和PageEncoding的区别--request编码问题
- UICollectionView 简单实用
- 334. Increasing Triplet Subsequence
- SOUI入门
- Longest Consecutive Sequence
- UESTC 1131 男神的礼物 dp:最优矩阵链乘&&triangulation&&双dp
- 6.UiWatcher API 详细介绍