Polya 定理练习题
来源:互联网 发布:移动广告网络平台 编辑:程序博客网 时间:2024/06/06 18:54
《算法竞赛入门经典:训练指南》上的例题。
顺便做了
Uva11762
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>const int maxn = 1e6+4;int prime[maxn], tot;bool check[maxn];double f[maxn];bool vis[maxn];void PreWork(){ for(int i = 2; i < maxn; i++) { if(!check[i]) prime[++tot] = i; for(int j = 1; j <= tot && i*prime[j] < maxn; j++) { check[i*prime[j]] = true; if(!(i%prime[j])) break; } }}double dp(int x){ if(x == 1) return 0; if(vis[x]) return f[x]; vis[x] = true; double &ans = f[x]; int g = 0, p = 0; ans = 0; for(p = 1; p <= tot && prime[p] <= x; p++) if(!(x%prime[p])) ans += dp(x/prime[p]), g++; ans = (ans + (--p))/g; return ans;}int main(){ int T;#ifndef ONLINE_JUDGE freopen("uva11762.in","r",stdin); freopen("uva11762.out","w",stdout);#endif PreWork(), std::cin >> T; for(int i = 1, q; i <= T; i++) scanf("%d",&q), printf("Case %d: %.10lf\n", i, dp(q));#ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout);#endif return 0; }
LA3641
#include<cstdio>#include<cstdlib>#include<iostream>#include<algorithm>void Solve(){ char str[30] = {'\0'}; bool hash[30] = {false}; int cnt[30] = {0}; bool flag = true; std::cin >> str; for(int i = 0; i < 26; i++) if(!hash[i]) { int len = 0; for(int j = i; !hash[j]; len++) hash[j] = true, j = str[j]-'A'; cnt[len]++; } for(int i = 2; i <= 26; i += 2) if(cnt[i]&1) {flag = false; break;} if(flag) std::cout << "Yes" << std::endl; else std::cout << "No" << std::endl; }int main(){ int T;#ifndef ONLINE_JUDGE freopen("LA3641.in","r",stdin); freopen("LA3641.out","w",stdout); #endif std::cin >> T; while(T--) Solve();#ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout);#endif return 0; }
UVa10294
#include<cstdio>#include<cstdlib>#include<iostream>#include<algorithm>int n, t;long long power(int x,int y){ long long ret = 1; while(y--) ret *= x; return ret;}int gcd(int x,int y){ if(!y) return x; return gcd(y,x%y); }int main(){#ifndef ONLINE_JUDGE freopen("uva10294.in","r",stdin); freopen("uva10294.out","w",stdout); #endif while(~scanf("%d",&n)) { long long a = 0, b = 0; std::cin >> t; for(int i = 0; i < n; i++) a += power(t,gcd(i,n)); if(n&1) b = n *power(t,(n+1)>>1); else b = (n>>1)*(power(t, (n>>1)+1) + power(t, n>>1)); std::cout << a/n << ' ' << (((a+b)/n)>>1) << std::endl; }#ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout);#endif return 0; }
UVa11077
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>const int maxn = 30;int n, k;unsigned long long f[maxn][maxn];int main(){#ifndef ONLINE_JUDGE freopen("uva11077.in","r",stdin); freopen("uva11077.out","w",stdout); #endif f[1][0] = 1; for(int i = 2; i <= 21; i++) for(int j = 0; j < i; j++) f[i][j] = f[i-1][j] + ((j)?f[i-1][j-1]*(i-1):0); while(true) { std::cin >> n >> k; if(!(n+k))break; std::cout << f[n][k] << std::endl; }#ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout);#endif}
0 0
- Polya 定理练习题
- polya定理
- polya定理
- polya定理
- Polya定理
- Polya定理
- polya 定理
- polya定理1286
- polya定理应用
- polya定理再小结
- Polya定理小结
- Polya定理,Burnside引理
- polya计数定理
- polya定理再小结
- POJ 2409 Polya定理
- poj 2409 polya定理
- Polya定理,Burnside引理
- poj 2409 polya定理
- 欢迎使用CSDN-markdown编辑器
- 记录Android学习笔记和部分IOS收藏
- 【Java基础】——java面向对象(中)—继承、抽象类、接口
- 我自己的Android面试试题总结整理
- 浅谈facebook威胁分析框架
- Polya 定理练习题
- 经验和想象力对调板子的帮助
- 15HD_OJ——Common Subsequence
- stringstream
- java 数据库连接的自动回收机制 removeAbandoned
- j2se学习笔记-IO_3 数据流DyteIO ByteArrayIO
- openstack安装经验总结
- 游戏服务器架构演化史
- 关于Linux内核学习