UVA 10706 Number Sequence(模拟)
来源:互联网 发布:ubuntu删除文件夹命令 编辑:程序博客网 时间:2024/05/23 00:55
首先,输入的i很大,如果想直接不断跑1 12 123这样上去直接找必定是超时的。
可以发现,一个数x,他12345……x一共有多少位我们是可以直接求出来的。所以我们每次直接减去这么多个数字即可。所以我们从1开始枚举x,每次i减去他的长度,直到i小于0,就说明答案就在12345……x中,直接暴力枚举即可得到答案。
那么这个x可能到多大呢?我们可以估算一下,假设x=1e5,直接用等差数列求和公式,那么sum至少是5e9 + 1e5。所以x最大不可能大于1e5,T只有15,这是完全够用的复杂度了。
代码如下:
#include<iostream>#include<cstdio>#include<vector>#include<queue>#include<utility>#include<stack>#include<algorithm>#include<cstring>#include<string>#include<cmath>#include<set>#include<map>using namespace std;int Count(int s) {int ans = s, tmp = 10;while(s >= tmp) {ans += s - tmp + 1;tmp *= 10;}return ans;}int Count2(int x) {int cnt = 0;while(x) {x /= 10;cnt++;}return cnt;}stack <int> sta;int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);#endifint T = 10000;int ans, a;//int t[10005];//for(int i = 0; i < 10005; i++)//t[i] = i + 1;scanf("%d", &T); for(int k = 0; k < T; k++) {scanf("%d", &a);//a = t[k];//printf("%d\n", a);while(!sta.empty())sta.pop();int s = 1, cnt;while(a > 0) {cnt = Count(s);a -= cnt;s++;}a += cnt, s--;for(int i = 1; ; i++) {if(a <= 0) {i--;a += Count2(i);while(i) {sta.push(i % 10);i /= 10;}while(a--) {ans = sta.top();sta.pop();}break;}a -= Count2(i);}printf("%d\n", ans);}return 0;}
阅读全文
0 0
- UVA 10706 Number Sequence(模拟)
- UVa 10706 - Number Sequence
- uva 10706 - Number Sequence
- UVA 10706 - Number Sequence
- UVa 10706 - Number Sequence
- UVa 10706 Number Sequence
- UVA 10706 - Number Sequence
- UVa 10706 - Number Sequence
- UVa:10706 Number Sequence
- uva 10706 Number Sequence
- uva 10706 Number Sequence
- uva 10706 Number Sequence
- UVA - 10706 Number Sequence
- UVA - 10706 Number Sequence
- UVA - 10706 Number Sequence
- UVA 10706 Number Sequence
- Number Sequence - UVa 10706
- UVa 10706 - Number Sequence
- 使用redis作为缓存,数据还需要存入数据库中吗?
- 数据结构 树 二叉树的建立及遍历 C语言版
- 复选框(JCheckBox)
- 网络流24题-5
- 分别用Java和Scala求PV,UV测试程序
- UVA 10706 Number Sequence(模拟)
- Redis + Spring 的集成示例
- Gabor滤波
- reduceByKey和groupByKey区别与用法
- 关于Android的Context的使用和注意,防止内存泄漏和异常
- python_lintcode_47主元素_47主元素 II_48主元素 III
- 数组模拟链表之学生排队
- 写了个Python脚本 帮助更新Android工程里面的gradle, android和依赖版本
- Hibernate与autoCommi