codeforces 887B
来源:互联网 发布:可视化编程软件 知乎 编辑:程序博客网 时间:2024/05/17 23:49
题意:给出n次6个数(n<=3),用这n个数能组成1到x的每一个数,输出最大的x(可以不全用)
因为数据范围较小,直接暴力求解,简单的搜索
#pragma comment(linker,"/STACK:1024000000,1024000000")#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<stack>#include<queue>#include<deque>#include<set>#include<map>#include<cmath>#include<vector>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> PII;#define pi acos(-1.0)#define eps 1e-10#define pf printf#define sf scanf#define lson rt<<1,l,mi#define rson rt<<1|1,mi+1,r#define e tree[rt]#define _s second#define _f first#define all(x) (x).begin,(x).end#define mem(i,a) memset(i,a,sizeof i)#define for0(i,a) for(int (i)=0;(i)<(a);(i)++)#define for1(i,a) for(int (i)=1;(i)<=(a);(i)++)#define mi ((l+r)>>1)#define sqr(x) ((x)*(x))const int inf=0x3f3f3f3f;const int mod=1e9+7;int a[5][10],n;bool vis[1010],b[4];void dfs(int p,int s)//p记录当前用了几个数,s表示数的大小,遇到前导0等效那一位数没有用{ vis[s]=1; if(p>=n)return ; for(int i=1;i<=n;i++) { if(b[i])continue; for1(j,6) { b[i]=1; dfs(p+1,s*10+a[i][j]); b[i]=0; } }}int main(){ while(~sf("%d",&n)) { for1(i,n) for1(j,6) sf("%d",&a[i][j]); mem(vis,0); mem(b,0); dfs(0,0); int i; for(i=1;i<=1000&&vis[i];i++); pf("%d\n",i-1); } return 0;}
阅读全文
0 0
- codeforces 887B
- codeforces 887B
- CodeForces-887B 技巧DFS
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- codeforces 887B. Cubes for Masha
- codeforces 887B. Cubes for Masha
- CodeForces 626B CodeForces 626B【暴力】
- CodeForces 841B (B) 博弈
- codeforces 134B
- codeforces#98 b
- codeforces 105 div2 B
- Codeforces 166B - Polygons
- codeforces B. Coins
- codeforces----193B Xor
- codeforces----208B Solitaire
- 【C】控制结构和语句
- Makefile和GCC日常用法
- 双十一卖的东西真的是一年中最便宜的吗?
- tiny4412开发板蜂鸣器驱动
- Unity3d常用快捷键
- codeforces 887B
- 抽象类(abstract class)和接口(Interface)的区别
- CS本科毕业生能拿到45万年薪?
- c primer pius 练习二
- ORACLE最基本的设置
- UG二次开发-VS2010+C++怎样调试
- 欧几里得+完全背包 蒸包子凑数
- FreeMarker之表达式
- 自动化测试第一课:selenium + webdriver + python 是什么