题目链接:hdu_5908_Abelian Period

题意:

给你n个数字,让你找出所有的k,使得把这n个数字分为k分,并且每份的数字种类和个数必须相同

题解:

枚举k,首先k必须是n的约数,然后就能算出每个数字应该出现多少次,O(n)检验即可。

 #include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;++i)
using namespace std; const int N=1e5+;
int t,n,a[N];
map<int,int>A,B;
map<int,int>::iterator it;
int ans[N],ed; int main(){
scanf("%d",&t);
while(t--)
{
scanf("%d",&n),ed=;
F(i,,n)scanf("%d",a+i);
int be=;
while(be<=n)
{
while(be<n&&n%be!=)be++;
if(n%be==)
{
A.clear();
F(i,,be)A[a[i]]++;
int en=n/be,fg=;
F(i,,en)
{
B=A;
int s=(i-)*be+,t=s+be-;
F(j,s,t)B[a[j]]--;
for(it=B.begin();it!=B.end();it++)
{
if(it->second!=){fg=;break;}
}
if(fg)break;
}
if(fg==)ans[++ed]=be;
}
be++;
}
F(i,,ed)printf("%d%c",ans[i],i==ed?'\n':' ');
}
return ;
}

hdu_5908_Abelian Period(暴力)的更多相关文章

  1. HDU 5908 Abelian Period(暴力+想法题)

    传送门 Description Let S be a number string, and occ(S,x) means the times that number x occurs in S. i. ...

  2. HDU5908 Abelian Period 暴力

    题目大意:将一个数组分成长度为k的几个连续区间,如果每个区间内各个元素出现的次数相同,则称k为一个阿贝尔周期,从小到大打印所有阿贝尔周期,数据间加空格. 题目思路:map+暴力 #include< ...

  3. HDU 5908 Abelian Period 暴力

    Abelian Period 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5908 Description Let S be a number st ...

  4. HDU 5908 Abelian Period (BestCoder Round #88 模拟+暴力)

    HDU 5908 Abelian Period (BestCoder Round #88 模拟+暴力) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=59 ...

  5. centos 7 DenyHosts 安装 防暴力破解ssh登陆

    为了减少软件扫描ssh登陆 还是用这个比较好点  默认端口号22 也要改 登陆密码也不要使用 弱口令 123456 这样的 Description DenyHosts is a python prog ...

  6. 欧拉工程第64题:Odd period square roots

    题目链接 找循环位数是奇数的数有多少个 这个自己很难写出来,完全不能暴力 维基百科链接 维基百科上面说的很好,上面的算法实现就好了. 就是上面的 Java程序: package project61; ...

  7. hdu 1010 Tempter of the Bone(dfs暴力)

    Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...

  8. Codeforces Round #404 (Div. 2)(A.水,暴力,B,排序,贪心)

    A. Anton and Polyhedrons time limit per test:2 seconds memory limit per test:256 megabytes input:sta ...

  9. Codeforces 827E Rusty String - 快速傅里叶变换 - 暴力

    Grigory loves strings. Recently he found a metal strip on a loft. The strip had length n and consist ...

随机推荐

  1. R语言 关联规则

    在用R语言做关联规则分析之前,我们先了解下关联规则的相关定义和解释. 关联规则的用途是从数据背后发现事物之间可能存在的关联或者联系,是无监督的机器学习方法,用于知识发现,而非预测. 关联规则挖掘过程主 ...

  2. NTSC色域(CIE1931)计算公式

    色域(CIE1931)=ABS(RC[-6]*RC[-3]+RC[-4]*RC[-1]+RC[-2]*RC[-5]-RC[-6]*RC[-1]-RC[-4]*RC[-5]-RC[-2]*RC[-3]) ...

  3. java基础<迷你DVD系统>

    一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...

  4. Notepad++中调试用心lua程序

    一.配置: 1.打开Notepad++: 2. 按下F5,或者打开Run->Run… 3. 弹出Run的窗口 3. 这一步是最关键的,将下列语句拷贝粘贴至输入框中:cmd /k Python & ...

  5. 记JavaScript的入门学习(三)

    2016.12.6晚上十点半完成JavaScript的第二章学习,看了点第三章的开头总述,都说原生js每一个知识点都可以分分钟钟让你放弃,而我在努力探索着.月末的时候就回家放假了,希望在家也可以有个小 ...

  6. FileOutputStream flush()

    FileOutputStream 继承 OutputStream ,flush方法查看源码方法体为空,所以flush没起到清除缓存的作用 改用BufferedOutputStream再调用flush( ...

  7. c# 读取ACCESS 数据库

    using System; using System.Collections.Generic; using System.Data.OleDb; using System.IO; using Syst ...

  8. hdu1030

    #include<stdio.h>#include<math.h>void find(int n,int &l,int &r,int &level){ ...

  9. Linux软件安装管理 - CentOS

    ---恢复内容开始--- 1. 软件包管理简介 1.1 源码包 - 脚本安装包 1.2 二进制包(RPM包,系统默认包) - 依赖性 2. rpm命令管理(Redhat Package Manager ...

  10. JS:JSP Servlet

    Servlet 是在服务器上运行的小程序.这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行 ...