zoukankan      html  css  js  c++  java
  • [bzoj2665] [cqoi2012]编号

      首先有一个直观暴力的想法..

      枚举每个数,如果这个数可行的话,就加进答案里,然后把和它超过4个位置相同的数去掉。

      然后正解真的是这个>_<

      假设取到了数x,只要和x有5位相同的数就可以排除掉..

      暴力C(7,5)=21种枚举那5个位置是啥,f[id][i][j][k][a][b]表示第id种位置,5个位置上的数是i,j,k,a,b,是否被已排除。

      一个数可行的话,就得21种位置上的数都没被排除。

      这复杂度竟然能过....O(16^7)

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define ll long long
     6 #define d double
     7 using namespace std;
     8 const int maxn=200233;
     9 bool f[21][17][17][17][17][17];
    10  
    11 int ra;char rx;
    12 inline int read(){
    13     rx=getchar(),ra=0;
    14     while(rx<'0'||rx>'9')rx=getchar();
    15     while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
    16 }
    17 inline void outx(int i,int j,int k,int l,int a,int b,int c){
    18     int v[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
    19     printf("%c%c%c%c%c%c%c
    ",v[i],v[j],v[k],v[l],v[a],v[b],v[c]);
    20 }
    21 int main(){
    22     int i,j,k,n;register int l,a,b,c;
    23     n=read();
    24     for(i=0;i<16;i++)for(j=0;j<16;j++)for(k=0;k<16;k++)for(l=0;l<16;l++)for(a=0;a<16;a++)for(b=0;b<16;b++)for(c=0;c<16;c++)
    25         if(
    26         !f[0][i][j][k][l][a]
    27         &&!f[1][i][j][k][l][b]
    28         &&!f[2][i][j][k][a][b]
    29         &&!f[3][i][j][l][a][b]
    30         &&!f[4][i][k][l][a][b]
    31         &&!f[5][j][k][l][a][b]
    32         &&!f[6][i][j][k][l][c]
    33         &&!f[7][i][j][k][a][c]
    34         &&!f[8][i][j][l][a][c]
    35         &&!f[9][i][k][l][a][c]
    36         &&!f[10][j][k][l][a][c]
    37         &&!f[11][i][j][k][b][c]
    38         &&!f[12][i][j][l][b][c]
    39         &&!f[13][i][k][l][b][c]
    40         &&!f[14][j][k][l][b][c]
    41         &&!f[15][i][j][a][b][c]
    42         &&!f[16][i][k][a][b][c]
    43         &&!f[17][j][k][a][b][c]
    44         &&!f[18][i][l][a][b][c]
    45         &&!f[19][j][l][a][b][c]
    46         &&!f[20][k][l][a][b][c]
    47         ){
    48             n--;
    49             if(!n){outx(i,j,k,l,a,b,c);return 0;}
    50             f[0][i][j][k][l][a]
    51             =f[1][i][j][k][l][b]
    52             =f[2][i][j][k][a][b]
    53             =f[3][i][j][l][a][b]
    54             =f[4][i][k][l][a][b]
    55             =f[5][j][k][l][a][b]
    56             =f[6][i][j][k][l][c]
    57             =f[7][i][j][k][a][c]
    58             =f[8][i][j][l][a][c]
    59             =f[9][i][k][l][a][c]
    60             =f[10][j][k][l][a][c]
    61             =f[11][i][j][k][b][c]
    62             =f[12][i][j][l][b][c]
    63             =f[13][i][k][l][b][c]
    64             =f[14][j][k][l][b][c]
    65             =f[15][i][j][a][b][c]
    66             =f[16][i][k][a][b][c]
    67             =f[17][j][k][a][b][c]
    68             =f[18][i][l][a][b][c]
    69             =f[19][j][l][a][b][c]
    70             =f[20][k][l][a][b][c]
    71             =1;
    72         }
    73 }
    View Code
  • 相关阅读:
    Thinkphp中自己组合的数据怎样使用框架的分页
    CI框架不能有Index控制器
    购物车,修改数量错误
    TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement.
    OAuth2.0
    通过控制面板查看时间日志
    js再学习笔记
    Thinkphp验证码异步验证第二次及以后验证,验证错误----待解决
    cookie&&session再理解笔记
    markdown语法学习笔记
  • 原文地址:https://www.cnblogs.com/czllgzmzl/p/5621653.html
Copyright © 2011-2022 走看看