HDU-5908-Abelian Period(暴力)
来源:互联网 发布:姚明生涯得分数据统计 编辑:程序博客网 时间:2024/06/06 09:09
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5908
题意:
设SSS是一个数字串,定义函数occ(S,x)occ(S,x)occ(S,x)表示SSS中数字xxx的出现次数。例如:S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1。如果对于任意的iii,都有occ(u,i)=occ(w,i)occ(u,i)=occ(w,i)occ(u,i)=occ(w,i),那么我们认为数字串uuu和www匹配。例如:(1,2,2,1,3)≈(1,3,2,1,2)。对于一个数字串SSS和一个正整数kkk,如果SSS可以分成若干个长度为kkk的连续子串,且这些子串两两匹配,那么我们称kkk是串SSS的一个完全阿贝尔周期。给定一个数字串SSS,请找出它所有的完全阿贝尔周期。
题解:
直接用map暴力
CODE:
#include <bits/stdc++.h>//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define INF 0x3f3f3f3f#define LL long long#define bug cout<<"bug"<<endlconst int MAXN = 100007;const int MAXM = 20007;const int MOD = 1e9 + 9;using namespace std;int ans[MAXN],all;int a[MAXN],p[MAXN];int n;bool judge(int len){ map<int, int>cnt1, cnt2; for(int i=0; i<len; ++i) cnt1[ a[i] ]++; for(int i=len; i<n; ++i) { if(i%len==0&&i>len)if(cnt1!=cnt2)return 0; if(i%len==0)cnt2.clear(); cnt2[ a[i] ]++; } if(cnt1!=cnt2)return 0; return 1;}int main(){ int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0; i<n; ++i) scanf("%d",&a[i]); int temp=0; for(int i=1; i*i<=n; ++i) if(n%i==0) { p[temp++]=i; if(i*i!=n)p[temp++]=n/i; } sort(p,p+temp); temp--; all=0; int all=0,k=0; for(int i=0; i<temp; ++i) { k=0; for(int j=0; j<all; ++j) if(p[i]%ans[j]==0) { k=1; ans[all++]=p[i]; break; } if(!k) { if(judge(p[i])) ans[all++]=p[i]; } } for(int i=0; i<all; ++i) printf("%d ",ans[i]); cout<<p[temp]<<endl; } return 0;}/*265 4 4 4 5 486 5 6 5 6 5 5 6*/
0 0
- 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 + 暴力】
- 【HDU 5908 Abelian Period】
- HDU 5908 Abelian Period
- HDU 5908 Abelian Period
- 【HDU 5908 || #bestcoder88 1002】【map的应用 暴力】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(思维)
- HDU5908 Abelian Period(模拟暴力)
- HDU 5908 Abelian Period 模拟乱搞
- Trie树模板
- 欢迎使用CSDN-markdown编辑器
- sublime更新之后无法使用package control
- 欢迎使用CSDN-markdown编辑器
- Java Servlet 教程
- HDU-5908-Abelian Period(暴力)
- 通过使用Power BI 将Azure 图表内容显示到自己的网页里
- 31. HTTP 与 HTTPS 区别
- 7天入门php-session操作-简介
- (HDU 1698)Just a Hook 线段树区间修改
- 开源客服系统 ppmessage
- java浅说(5):Pattern和Matcher类的获取功能
- Swift学习记录 -- 13.类的构造方法及属性监听
- 留學資料