hdu 5908 Abelian Period (枚举)
来源:互联网 发布:华为手机下载软件 编辑:程序博客网 时间:2024/05/20 22:02
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5908
首先长度i必需满足n%i==0,这样才能将字符串分成整数份。n<=100000,满足条件的i应该不多,写个小程序看看有多少个
#include <iostream>#include <cstdio>using namespace std;#define FOR(i,k,n) for(int i=k;i<n;i++)#define FORR(i,k,n) for(int i=k;i<=n;i++)#define N 100000int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int cnt=0; FORR(i,1,N) { if(N%i==0) printf("%d\n",i),cnt++; } printf("%d\n",cnt); return 0;}结果显示36个。
所以直接枚举所有的长度i,找出符合的
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set>#include <map>using namespace std;#define FOR(i,k,n) for(int i=k;i<n;i++)#define FORR(i,k,n) for(int i=k;i<=n;i++)#define scan(a) scanf("%d",&a)#define scann(a,b) scanf("%d%d",&a,&b)#define scannn(a,b,c) scanf("%d%d%d",&a,&b,&c)#define mst(a,n) memset(a,n,sizeof(a))#define ll long long#define N 100005#define mod 1000000007#define INF 0x3f3f3f3fconst double eps=1e-8;const double pi=acos(-1.0);vector<int> num;vector<int> ans;int cnt[N];int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int t; scan(t); while(t--) { mst(cnt,0); num.clear(); ans.clear(); int n; scan(n); FOR(i,0,n) { int tmp; scan(tmp); if(cnt[tmp]==0) num.push_back(tmp); cnt[tmp]++; } FOR(i,1,n) //枚举所有长度i { if(n%i==0) { int j=n/i,flag=0; FOR(k,0,num.size()) { int cur=num[k]; if(cnt[cur]%j) //每一个数的个数都可以均分成j份,则满足条件 { flag=1; break; } } if(!flag) ans.push_back(i); } } ans.push_back(n); FOR(i,0,ans.size()) printf("%d%c",ans[i],i==ans.size()-1?'\n':' '); } return 0;}
0 0
- hdu 5908 Abelian Period (枚举)
- hdu 5908 Abelian Period【思维+暴力枚举】
- 【HDU 5908 Abelian Period】
- HDU 5908 Abelian Period
- HDU 5908 Abelian Period
- 【29.27%】【hdu 5908】Abelian Period
- hdu 5908 Abelian Period 模拟
- HDU-5908 Abelian Period(思维)
- HDU-5908 Abelian Period(思维)
- HDU:5908 Abelian Period(水题+技巧)
- HDU 5908 Abelian Period 模拟乱搞
- HDU 5908 Abelian Period(暴力)
- hdu 5908 Abelian Period(暴力 + map优化)
- HDU-5908-Abelian Period(暴力)
- HDU 5908 Abelian Period (暴力+map)
- HDU -- 5908 Abelian Period 【思维 + map + 暴力】
- 5908 Abelian Period
- hdoj-【5908 Abelian Period】
- 【Lightoj 1067】+ 逆元 + 预处理
- D3D11.0绘制简单图元
- Failed to read candidate component class
- 链表逆置
- WireShark对于WIFI数据帧的分析
- hdu 5908 Abelian Period (枚举)
- Java 变量的运用练习题
- Java enum的用法详解
- Linux CMD
- OJ2001
- 杭电 2041 超级楼梯 【简单递归+动态规划(Dynamic Programming)】
- 回调方法与模板方法模式
- 29. 实体和编码
- 【C++研发面试笔记】5. C++ STL数据结构