博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[bzoj2665] [cqoi2012]编号
阅读量:5245 次
发布时间:2019-06-14

本文共 2744 字,大约阅读时间需要 9 分钟。

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

  枚举每个数,如果这个数可行的话,就加进答案里,然后把和它超过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
2 #include
3 #include
4 #include
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\n",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

 

转载于:https://www.cnblogs.com/czllgzmzl/p/5621653.html

你可能感兴趣的文章
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Ubuntu 安装之python开发
查看>>
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>
C++中explicit的用法
查看>>
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>
JS博客
查看>>
Docx转Doc操作(c#)
查看>>
一条简单的 SQL 执行超过 1000ms,纳尼?
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>