模拟
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
False coin(P1029)
这个题还算比较巧妙 #include #include #include using namespace std; #define N 1011 int main() { int i,j,k; int total=0; char c; int t[N]={0}; int r[N]={0}; int w[N]={0}; int p; int n; cin>>原创 2012-05-12 10:58:34 · 692 阅读 · 0 评论 -
Number Sequence (P1019)
这个题还比较麻烦。其中要注意的是:一个数中有多少个数字就占多少位。 作法: 用go[i ]存从数字i的数的位数。 用num[i]=num[i-1]+go[i]; 存1到i 之间的数的所有位数和。 用sum[i]=sum[i-1] +num[i] ;存1 gc i 之间的重复的数序列之和。 #include #include #include #原创 2012-08-06 22:01:06 · 327 阅读 · 0 评论 -
Cipher(P1026)
好几天没有做题了,现在做一个,,感觉就好吃力的样子。 这个题首先直接模拟是会严重超时的。 先算所有的字符循环多少次后可以加原来的位置。由于,计算得到的结果中字符所对应的位是唯一确定的。所以就计算一下求出的模的次数就行(注意:用最小公倍数会超时,可能是整数存不了这么大的数了) #include #include #include using namespace原创 2012-07-01 18:10:00 · 431 阅读 · 0 评论 -
Parencodings(P1068)
#include #include using namespace std; int t,n; char str[44]; int go[44]; int main() { int i,j,k; //freopen("in.txt","r",stdin); cin>>t; while (t--) { cin>>n; j=0; int cur=0; for (i=原创 2012-07-02 00:07:33 · 540 阅读 · 0 评论 -
The next permutation
简单题, 先是我的代码,再附上#include 里的另一个函数的妙用,:next_permutation(); #include #include #include #include using namespace std; int dp[101][101][2]; int main() { freopen("in.txt","r",stdin); int i,j,k; i原创 2012-05-20 17:58:47 · 538 阅读 · 0 评论 -
Joseph(P1012)
直接模拟出会严重超时,反正只有几个数,打个表就行了, int x[] = { 2, 7, 5, 30, 169, 441, 1872, 7632, 1740, 93313, 459901, 1358657, 2504881 }; #include #include #include #include #include using namespace s原创 2012-05-15 16:34:02 · 416 阅读 · 0 评论 -
(简单)When Can We meet?
#include #include #include #include #include using namespace std; int main() { freopen("fuck.txt","r",stdin); int i,j,k; int n; while (cin>>n>>k,n) { int go[101]={0}; while (n--) { c原创 2012-05-15 15:18:01 · 1029 阅读 · 0 评论 -
排列(P1833)
用cin会超时,,,规律自己想吧, #include #include #include #include using namespace std; int main() { freopen("fuck.txt","r",stdin); int i,j,k; int n; int go[2000]; int t; scanf("%d",&t); while (t--原创 2012-05-13 01:06:11 · 364 阅读 · 0 评论 -
Palindrome Numbers(P2402)
还是费了一点时间,, 提示::先是计算出n位数对应的回数的个数. #include #include #include #include using namespace std; int main() { long long i,j; int n; long long go[10000]; long long k; go[1]=9; for (i=2;i原创 2012-05-13 00:34:42 · 487 阅读 · 0 评论 -
Tiling(P2506)
是一个大数据处理问题,把大数用很多个数相继存储就可以存得很大的数. 计算原理:后一项是前一项+前第二项的两倍 #include #include #include #include using namespace std; int n; int go[254][100]; int main() { int i,j,k; int l[254]={0}; mem原创 2012-05-12 23:24:38 · 434 阅读 · 0 评论 -
Ones(P2551)
简单,一看你就知道 #include #include #include #include using namespace std; int n; int go[254][100]; int main() { int i,j,k; int n; while (cin>>n) { j=0; k=n; while (true) { j++; n=1原创 2012-05-12 23:41:41 · 318 阅读 · 0 评论 -
Rabbit hunt(P2606)
一次,无修改,很爽 #include #include #include #include using namespace std; #define N 1011 int n; struct my { int x; int y; }go[300]; bool vist[300][300]; int main() { freopen("fuck.txt","r",stdin)原创 2012-05-12 13:46:32 · 426 阅读 · 0 评论 -
Moving Tables(P1083)
嗯嗯 #include #include #include #include using namespace std; #define N 1011 struct my { int from; int to; } go[300]; bool cmp(my a,my b) { if (a.from!=b.from) return a.from<b.from; return原创 2012-05-12 13:24:09 · 443 阅读 · 0 评论 -
Counterfeit Dollar(P1013)
有些细节比较烦人了 #include #include #include using namespace std; #define N 1011 int main() { freopen("fuck.txt","r",stdin); int i,j,k; bool r[20]; char go[4][20]; int n; cin>>n; while (n--)原创 2012-05-12 12:56:06 · 572 阅读 · 0 评论 -
(位运算) Krolia的礼包难题(CD1783)
题意:给出有N种礼物,现在有M个客人要求礼品包装后送出。 如果有几种物品种是在一起,则可以用同一种包装纸进行包装。 不同的包装会用不同的包装纸。求最少用的包装纸数。 思路:一开始做时候是比赛,当时的状态很不好,一开始还以为是 以前做过的四色问题,就是最多可能有四种包装纸。后来才知道具体的题意, 是因为没有读懂题真正原创 2012-12-10 22:42:37 · 416 阅读 · 0 评论