代码改变世界

1082. MANAGER

2012-01-27 00:08 by Min·zc, 203 阅读, 0 推荐, 收藏, 编辑
摘要:按照题目的要求去进行模拟就可以了,数据比较弱。#include<iostream>#include<map>using namespace std;int main(){ int max; int first=1; while(cin>>max) { char cmd; int p=1; int queue[10010]; int rmlist[10010]; map<int,int> process; int k=1; int num; cin>>num; ... 阅读全文

1780. Faulty Odometer Again

2012-01-26 23:16 by Min·zc, 199 阅读, 0 推荐, 收藏, 编辑
摘要:分别计算个位十位百位...中包含2,5,8的数字的个数,注意的一点是会出现重复计算的情况,需要减去。比如22,在计算个位的时候被计算了一次,在计算十位的时候还会被计算一次。因为不知道怎么计算重复的数字个数,所以我是先将重复数字的个数用枚举的方式计算出来,然后保存在表中。#include<iostream>using namespace std;int cal(int n){ if(n<2) return 0; else if(n<5) return 1; else if(n<8) return 2; else re... 阅读全文

Sicily/1350. Piggy banks

2011-11-21 17:09 by Min·zc, 209 阅读, 0 推荐, 收藏, 编辑
摘要:并查集。如果a的钥匙保存在b中,b的钥匙保存在c中,那么实际上只需要打开c就可以打开后面的a和b了,所以说c是a和b的祖先。根据上述的原理,将所有的盒子分组,最后查看哟多少种不同祖先就可以了。在程序开始的时候,每个盒子是自己的祖先。在并查集的操作中,每次合并就减少了一种祖先。最后直接输出答案即可。#include<iostream>#include<memory.h>using namespace std;int num[1000010];int rank[1000010];int final[1000010];int ans;int findset(int x){ i 阅读全文

Sicily/1203. The Cubic End

2011-11-21 00:53 by Min·zc, 348 阅读, 0 推荐, 收藏, 编辑
摘要:大数乘法。因为题目中说对于每一个以1,3,7,9结尾的数字都有一个数n,n的立方的最后几位刚好为给定的数字。所以说有且仅有一个解。那么就可以直接每次计算待求结果的一位来逐步逼近最终正确的结果。比如给定的后缀数字为123.那么我们一定可以确定的是待求数字的个位数字的立方一定是3,所以我们就可以确定待求的数字为xx7。然后知道待求数字的最后两位的立方一定是23,这样在枚举待求数字的十位,找到一个解4,所以此时待求的数字就变为x47.最后枚举百位就可以了。需要注意的是枚举的起点应该是0,因为待求数字的位数只是不能必给定的数字大,但是是存在比给定的数字小的情况的。最后遍历一次结果,将多余的0去掉即可。 阅读全文

Sicily/1927. Conflict

2011-11-20 17:40 by Min·zc, 185 阅读, 0 推荐, 收藏, 编辑
摘要:对于< 和 >可以合并为 <对于<= 和 >= 可以合并为 <=对于 = 可以变为 <=且 >=!=则单独处理使用一个表来保存初始的所有表达式的状态,需要注意的是要将每个表达式对他自己设置为=,用来处理例如a=a或者a!=a的情况。然后使用warshall求解这个表的闭包。最后验证一下是否存在冲突即可。如果存在 a<b 且 b<a或者b<=a那么就是一种冲突如果存在a!=b 且 a<=b且b<=a那么就是一种冲突需要注意的是每个case的停机条件。如果是使用":"的位置那么需要注意case为两位数 阅读全文

Sicily/1779. Fibonacci Sequence Multiplication

2011-11-19 17:53 by Min·zc, 229 阅读, 0 推荐, 收藏, 编辑
摘要: 阅读全文

Sicily/2501. 算算式

2011-11-12 22:23 by Min·zc, 280 阅读, 0 推荐, 收藏, 编辑
摘要:很裸的一个欧拉函数的应用因为9901时一个素数,所哟他的欧拉函数值为9900.根据欧拉定理可知所以只需要计算数列的前9900项就可以了,后面就是前面的重复而已。: 高亮代码由发芽网提供01 #include<iostream>02 #include<memory.h>03 usingnamespacestd;04 intmain()05 {06 int n,k;07 inttb[10000];08 while(cin>>n>>k)09 {10 intans=0;11 inttl=0;12 memset(tb,0,sizeof(tb));13 tb 阅读全文

Sicily/1276. Who needs 8 Queens w[Special judge]

2011-11-12 15:37 by Min·zc, 252 阅读, 0 推荐, 收藏, 编辑
摘要:百度一下n皇后构造法就成了一、当n mod 6 != 2 或 n mod 6 != 3时,有一个解为:2,4,6,8,...,n,1,3,5,7,...,n-1 (n为偶数)2,4,6,8,...,n-1,1,3,5,7,...,n (n为奇数)(上面序列第i个数为ai,表示在第i行ai列放一个皇后;... 省略的序列中,相邻两数以2递增。下同)二、当n mod 6 == 2 或 n mod 6 == 3时,(当n为偶数,k=n/2;当n为奇数,k=(n-1)/2)k,k+2,k+4,...,n,2,4,...,k-2,k+3,k+5,...,n-1,1,3,5,...,k+1 (k为偶数,n 阅读全文

Sicily/1704. Pencils from the Nineteenth Century

2011-08-28 09:34 by Min·zc, 187 阅读, 0 推荐, 收藏, 编辑
摘要:x+y+z=n4x+0.5y+0.25z=n消去y,得到x和z的关系式14x=2n+z,枚举所有的x#include<stdio.h>usingnamespacestd;intmain(){intn;intt=0;while(scanf("%d",&n)&&n!=0){t++;printf("Case%d:\n",t);printf("%dpencils for%dcents\n",n,n);intx=1;intflag=0;for(;x<n;x++){intz=14*x-2*n;if(z&g 阅读全文

Sicily/2470. Matrix Commutative Multiplication

2011-08-27 17:19 by Min·zc, 322 阅读, 0 推荐, 收藏, 编辑
摘要:线性代数如果矩阵A与所有的同阶矩阵可以交换, 那么A是数量矩阵。数量矩阵的定义:对角线,所有元素相同。#include<iostream>#include<stdio.h>usingnamespacestd;intmain(){intt;//cin>>t;scanf("%d",&t);while(t--){intn;scanf("%d",&n);//cin>>n;intflag=1;intnum;for(inti=1;i<=n;i++){for(intj=1;j<=n;j++){ 阅读全文