ZOJ 3954 Seven-Segment Display (预处理/状态压缩)
来源:互联网 发布:米思米2016选型软件 编辑:程序博客网 时间:2024/06/02 03:29
这是2017浙大校赛的最后一道题(还有一道实在不会做),感觉并没有什么特别难的题目,写的题解好像在以后来看也没什么参考价值。。
题意
每一列作为一个元素,是否存在一个排列使得结果刚好是标准模式
思路
由于排列总共就
代码
#include <bits/stdc++.h>#define mem(a,b) memset(a,b,sizeof(a))#define rep(i,a,b) for(int i=a;i<b;i++)#define sc(a) scanf("%d",&a)const int INF=0x3f3f3f3f;const int maxn=2e5+50;const int mod=1e9+7;const double eps=1e-8;#define pii pair<int,int>typedef long long ll;typedef unsigned int ui;using namespace std;int pattern[10][7]{ 0,0,0,0,0,0,0, 1,0,0,1,1,1,1, 0,0,1,0,0,1,0, 0,0,0,0,1,1,0, 1,0,0,1,1,0,0, 0,1,0,0,1,0,0, 0,1,0,0,0,0,0, 0,0,0,1,1,1,1, 0,0,0,0,0,0,0, 0,0,0,0,1,0,0};char buf[10];int s7[7];int getXFromS7(int s7[]){ int ret=0; for(int i=0;i<7;i++){ if(s7[i]) ret+=1<<(6-i); } return ret;}struct Pattern{ ll s[10]; int getFrom(int perm[],int x){ for(int i=0;i<7;i++){ s7[i]=pattern[x][perm[i]]; } return getXFromS7(s7); } void init(int perm[]){ mem(s,0); rep(i,1,10) s[i]=getFrom(perm,i); } void print(){ rep(i,1,10){ printf("%lld ",s[i]); } puts(""); } void read(){ mem(s,0); int n; sc(n); rep(i,0,n){ int x; sc(x); scanf(" %s",buf); rep(j,0,7){ s7[j]=buf[j]-'0'; } s[x]=getXFromS7(s7); } } ll toLL(){ ll ret=0; rep(i,1,10){ ret+=s[i]<<((i-1)*7); } return ret; }};set<ll> ans;void getP(Pattern &p,int dep){ if(dep==10) { //p.print(); ans.insert(p.toLL()); return; } ll tmp=p.s[dep]; p.s[dep]=0; getP(p,dep+1); p.s[dep]=tmp; getP(p,dep+1);}void init(){ int perm[7]; rep(i,0,7) perm[i]=i; do{ Pattern p; p.init(perm); //p.print(); getP(p,1); }while(next_permutation(perm,perm+7)); //for(auto i:ans) cout<<"= ="<<i<<endl;}Pattern tar;int main(){#ifndef ONLINE_JUDGE //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout);#endif init(); //printf("%d\n",ans.size()); int T; scanf("%d",&T); while(T--){ tar.read(); puts(ans.find(tar.toLL())!=ans.end()?"YES":"NO"); } return 0;}
0 0
- ZOJ 3954 Seven-Segment Display (预处理/状态压缩)
- ZOJ 3954 Seven-Segment Display (预处理)
- ZOJ 3954 Seven-Segment Display
- ZOJ 3954 Seven-Segment Display
- ZOJ 3954 Seven-Segment Display
- ZOJ Seven Segment Display
- ZOJ 3954 Seven-Segment Display(思维)
- zoj 3954 Seven-Segment Display 思维
- zoj 3954 Seven-Segment Display(暴力枚举)
- zoj 3954 Seven-Segment Display 位运算
- ZOJ 3962 Seven Segment Display
- 【ZOJ 3962 Seven Segment Display】
- ZOJ-3954-Seven-Segment Display【17th浙大校赛】
- ZOJ 3962 Seven Segment Display(数位dp)
- ZOJ 3962 Seven Segment Display(*数位DP 总结)
- ZOJ 3962 Seven Segment Display (数位 DP)
- ZOJ 3962Seven Segment Display(数位dp)
- ZOJ 3962Seven Segment Display (数位DP)
- DDMS中的File Explorer一片空白
- 安卓data文件夹无权限访问问题
- HDU5937 Equation 【DFS+剪枝】
- 可持久化数据结构之主席树
- 什么是VI?(虚拟仪器)
- ZOJ 3954 Seven-Segment Display (预处理/状态压缩)
- 2017年4月18日今日头条笔试原题D题
- 使用KNN算法识别数字
- 定时从大数据平台同步HIVE数据到oracle
- 一次完整的 HTTP 请求过程
- mac安装mysql + sequel pro
- Mongo3.4.3版本 vue界面不显示collections
- 牛牛
- Java基础学习笔记:(五)String类