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

  枚举每个数,如果这个数可行的话,就加进答案里,然后把和它超过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)

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define ll long long
#define d double
using namespace std;
const int maxn=;
bool f[][][][][][]; int ra;char rx;
inline int read(){
rx=getchar(),ra=;
while(rx<''||rx>'')rx=getchar();
while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
}
inline void outx(int i,int j,int k,int l,int a,int b,int c){
int v[]={'','','','','','','','','','','a','b','c','d','e','f'};
printf("%c%c%c%c%c%c%c\n",v[i],v[j],v[k],v[l],v[a],v[b],v[c]);
}
int main(){
int i,j,k,n;register int l,a,b,c;
n=read();
for(i=;i<;i++)for(j=;j<;j++)for(k=;k<;k++)for(l=;l<;l++)for(a=;a<;a++)for(b=;b<;b++)for(c=;c<;c++)
if(
!f[][i][j][k][l][a]
&&!f[][i][j][k][l][b]
&&!f[][i][j][k][a][b]
&&!f[][i][j][l][a][b]
&&!f[][i][k][l][a][b]
&&!f[][j][k][l][a][b]
&&!f[][i][j][k][l][c]
&&!f[][i][j][k][a][c]
&&!f[][i][j][l][a][c]
&&!f[][i][k][l][a][c]
&&!f[][j][k][l][a][c]
&&!f[][i][j][k][b][c]
&&!f[][i][j][l][b][c]
&&!f[][i][k][l][b][c]
&&!f[][j][k][l][b][c]
&&!f[][i][j][a][b][c]
&&!f[][i][k][a][b][c]
&&!f[][j][k][a][b][c]
&&!f[][i][l][a][b][c]
&&!f[][j][l][a][b][c]
&&!f[][k][l][a][b][c]
){
n--;
if(!n){outx(i,j,k,l,a,b,c);return ;}
f[][i][j][k][l][a]
=f[][i][j][k][l][b]
=f[][i][j][k][a][b]
=f[][i][j][l][a][b]
=f[][i][k][l][a][b]
=f[][j][k][l][a][b]
=f[][i][j][k][l][c]
=f[][i][j][k][a][c]
=f[][i][j][l][a][c]
=f[][i][k][l][a][c]
=f[][j][k][l][a][c]
=f[][i][j][k][b][c]
=f[][i][j][l][b][c]
=f[][i][k][l][b][c]
=f[][j][k][l][b][c]
=f[][i][j][a][b][c]
=f[][i][k][a][b][c]
=f[][j][k][a][b][c]
=f[][i][l][a][b][c]
=f[][j][l][a][b][c]
=f[][k][l][a][b][c]
=;
}
}

[bzoj2665] [cqoi2012]编号的更多相关文章

  1. 【BZOJ 2665】 2665: [cqoi2012]编号(暴力?)

    2665: [cqoi2012]编号 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 347  Solved: 217 Description 你需要给一 ...

  2. bzoj 2665: [cqoi2012]编号

    题目中说任意两个数至少要有3个位上数不相同,那么其实也就是从7个数中选出5个这样任意的组合全部不同,用数组f[i][j][k][l][m][n]记一下就好了,i为第几种组合,一共C(7,5)种,最后爆 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. [BZOJ2667][cqoi2012]模拟工厂 贪心

    2667: [cqoi2012]模拟工厂 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 184[Submit][Status] ...

  5. 【BZOJ2666】[cqoi2012]组装 贪心

    [BZOJ2666][cqoi2012]组装 Description 数轴上有m个生产车间可以生产零件.一共有n种零件,编号为1~n.第i个车间的坐标为xi,生产第pi种零件(1<=pi< ...

  6. [No0000A8]Word中设置图片下的题注及插入多级列表编号

    1.什么是题注? 2.怎么实现一个可以自动更新的题注?  只有先定义好文档编号后,才可以设置出正确的图片下标题注. 文章的结构可以通过导航窗口导航. 导航窗口打开方式. 3.设置好文档编号后,怎样插入 ...

  7. sql server如何分组编号

    我们在生产实践中经常会有这样的需求:分组编号. 如下有一个城市区域表region: 我们需要对上表region按city分组,对region进行排序,得到如下结果: 具体sql如下: select c ...

  8. MathType6.9按章节插入编号

    先插入Chapter,然后修改break主要是该起始编号. 这样话会用一行红色红代码,选中,邮件字体,然后在格式里选择隐藏就好了,这个不能删除.

  9. latex公式编号

    1 \begin{flalign*} 2 % In this way (this arrange of &), the equation will in the center and alig ...

随机推荐

  1. .net 委托的使用方法以及使用委托的好处

    使用方法: //无返回值无参数委托的定义方法 public delegate void NoReturnPara(); 给委托赋值的几种方式 //实例化委托,并传入方法 NoReturbNoPara ...

  2. golang sql database drivers

    https://github.com/golang/go/wiki/SQLDrivers SQL database drivers The database/sql and database/sql/ ...

  3. 根据图片的路径(绝对路径/相对路径都可以),生成base64的

    根据图片的路径(绝对路径/相对路径都可以),生成base64的 <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  4. echart异步刷新图表,详细配置注释

    echarts刷新技巧: echartData.chear(); //当异步改变数据时,配合echartData .setOption(option)才会有动画效果 echartData.resize ...

  5. PHP按行读取文件 去掉换行符"\n"

    第一种: $content=str_replace("\n","",$content); echo $content; 或者: $content=str_rep ...

  6. vlc源码研究

    有位传说中的大神告诉我,我的p2p打洞打不通是因为,sdp描述信息中的地址不对 也就是IN IP4 XXX.XXX.X.XXX这一句 我看到确实是个局域网地址,那么vlc在接收到IN IP4 XXX. ...

  7. Java的按位操作符

    本文参考:Java的位操作符 Java的位操作符用来操作整数基本数据类型中的单个"比特"(bit),即代进制位.而我们知道比特就是0和1,那么,位操作就是对这些数据进行基本的操作. ...

  8. Neo4j学习笔记(2)——数据索引

    和关系数据库一样,Neo4j同样可以创建索引来加快查找速度. 在关系数据库中创建索引需要索引字段和指向记录的指针,通过索引可以快速查找到表中的行. 在Neo4j中,其索引是通过属性来创建,便于快速查找 ...

  9. ECMAScript 6新特性简记

    ECMAScript 6.0是JavaScript语言的2015年6月的发布版. 一.let和const命令 let:用来声明变量,用法类似于var,但是只在let命令所在的代码块内有效. var a ...

  10. 对比Tornado和Twisted两种异步Python框架

    做Python的人,一定知道两个性能优秀的异步网络框架:tornado,和twisted. 那么,这两个著名的框架,又有什么异同呢?tornado和twisted,我都用在几个游戏项目中,做过后端,觉 ...