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

  枚举每个数,如果这个数可行的话,就加进答案里,然后把和它超过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. MySQL时间操作的系统函数用法

    我要查询获得当天凌晨30分的datetime值的方式:select ADDDATE(CURDATE(), INTERVAL TIME_TO_SEC(TIMEDIFF("00:30:00&qu ...

  2. Java I/O---概述

    对于程序设计者来说,创建一个好的输入/输出系统(I/O)系统是一项艰难的任务. 现在大量不同方案已经说明了这一点.挑战似乎来自于要涵盖所有的可能性.不仅存在各种I/O源端和想要与之通信的接收端(文件. ...

  3. 通过 备份文件 恢复/迁移 gitlab

    =============================================== 2017/10/20_第1次修改                       ccb_warlock = ...

  4. Sublime Text 3 配置分析与我的配置---小结

    Sublime Text 3 配置解释(默认){// 设置主题文件"color_scheme": "Packages/Color Scheme – Default/Mon ...

  5. K:java中的序列化与反序列化

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?以下内容将围绕这些问题进行展开讨论. Java序列化与反序列化 简单来说Java序列化是指把Java对象转 ...

  6. 视频流GPU解码在ffempg的实现(二)-GPU解码器

    1.gpu解码器的基本调用流程 要做视频流解码,必须要了解cuda自身的解码流,因为二者是一样的底层实现,不一样的上层调用 那cuda的解码流程是如何的呢 在https://developer.nvi ...

  7. spring的注解使用

    1.注解测试在xml里面配置<context:component-scan base-package="cn.ql"></component-scan>co ...

  8. java中的位操作

    之前做项目的时候使用位操作不是很多,今天在刷leetcode上题目的时候用到了位操作,是leetcode中的第29题Divide Two Integers. 一.java的位操作: 位运算表达式由操作 ...

  9. angular4.0快速import依赖路径

    快捷键:ALT + ENTER 直接import对应的依赖路径

  10. vim 查找的技巧

    vim查找时如果有多个特殊字符需要转义容易出错还繁琐. 要确保要查找的 URL 仍保存在寄存器 u 中.然后,我们输入 / 或者 ? 调出查找提示符,二者均能正确工作.最后,要依次输入原义开关 \V ...