zoukankan      html  css  js  c++  java
  • HDU5908 Abelian Period 暴力

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

    题目思路:map+暴力

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<vector>
     5 #include<stdio.h>
     6 #include<stdlib.h>
     7 #include<queue>
     8 #include<math.h>
     9 #include<map>
    10 #define INF 0x3f3f3f3f
    11 #define MAX 100005
    12 #define Temp 1000000000
    13 
    14 using namespace std;
    15 
    16 int a[MAX],vis[MAX];
    17 
    18 int check(int k,int n)
    19 {
    20     map<int ,int> map1,map2;
    21     for(int i=1; i<=k; i++)
    22         map1[a[i]]++;
    23     for(int i=k+1; i<=n-k+1; i+=k)
    24     {
    25         map2.clear();
    26         for(int j=0; j<k; j++)
    27         {
    28             int num=a[i+j];
    29             map2[num]++;
    30         }
    31         if(map1!=map2)
    32             return 0;
    33     }
    34     return 1;
    35 }
    36 
    37 int main()
    38 {
    39     int T,n,ans;
    40     scanf("%d",&T);
    41     while(T--)
    42     {
    43         memset(vis,0,sizeof(vis));
    44         scanf("%d",&n);
    45         for(int i=1; i<=n; i++)
    46         {
    47             scanf("%d",&a[i]);
    48         }
    49 
    50         for(int i=1; i<=n/2; i++)
    51         {
    52             if(!vis[i] && n%i==0)//如果2成立,那么如果2的倍数m能被n整除,则m也成立
    53             {
    54                 if(check(i,n))
    55                 {
    56                     for(int j=i; j<=n/2; j+=i)
    57                     {
    58                         if(j!=n && n%j==0)
    59                         {
    60                             vis[j]=1;
    61                         }
    62                     }
    63                 }
    64             }
    65         }
    66         for(int i=1; i<n; i++)
    67         {
    68             if(vis[i])
    69                 printf("%d ",i);
    70         }
    71         printf("%d
    ",n);
    72     }
    73     return 0;
    74 }
    View Code
  • 相关阅读:
    WCF简单使用(分别部署在控制台和IIS上)
    WCF系列教程之WCF服务配置工具
    053547
    053546
    053545
    053544
    053543
    053542
    053541
    053540
  • 原文地址:https://www.cnblogs.com/alan-W/p/5927468.html
Copyright © 2011-2022 走看看