长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)
链接:https://ac.nowcoder.com/acm/contest/1/C
来源:牛客网
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
输入描述:
多组输入 每组输入占一行,包含一串数字(1~9),长度不超过30
输出描述:
输出这个安卓图案解锁是否合法,如果合法输出"YES",反之输出"NO" (请参照样例输出,不要输出引号)
输入
复制
14569 1953 15963 15953
输出
复制
YES NO YES NO 思路:建立 一个二维数组 isok[i][j] 代表 从i走到j是否能走。用一个数组 cnt[i] 来记录数字i在字符串中出现的次数。 然后直接模拟即可。(题目中有错误的描述, 1-3-9 应该是 1-5-9 ) 出题人也不改题面,无奈啊。细节见代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <vector> #include <iomanip> #define ALL(x) (x).begin(), (x).end() #define rt return #define sz(a) int(a.size()) #define all(a) a.begin(), a.end() #define rep(i,x,n) for(int i=x;i<n;i++) #define repd(i,x,n) for(int i=x;i<=n;i++) #define pii pair<int,int> #define pll pair<long long ,long long> #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define MS0(X) memset((X), 0, sizeof((X))) #define MSC0(X) memset((X), '\0', sizeof((X))) #define pb push_back #define mp make_pair #define fi first #define se second #define eps 1e-6 #define gg(x) getInt(&x) #define db(x) cout<<"== [ "<<x<<" ] =="<<endl; using namespace std; typedef long long ll; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} ll lcm(ll a,ll b){return a/gcd(a,b)*b;} ll powmod(ll a,ll b,ll MOD){ll ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;} inline void getInt(int* p); const int maxn=1000010; const int inf=0x3f3f3f3f; /*** TEMPLATE CODE * * STARTS HERE ***/ char s[200]; int isok[11][11]; int cnt[11]; int main() {// freopen("D:\\code\\text\\input.txt","r",stdin);//freopen("D:\\code\\text\\output.txt","w",stdout);while(cin>>s){int len=strlen(s);// if(len>9)// {// cout<<"NO"<<endl;// continue;// }int flag=1;repd(i,1,9){cnt[i]=0;repd(j,1,9){isok[i][j]=1;}}isok[1][3]=isok[3][1]=0;isok[9][3]=isok[3][9]=0;isok[9][7]=isok[7][9]=0;isok[1][7]=isok[7][1]=0;isok[1][9]=isok[9][1]=0;isok[7][3]=isok[3][7]=0;isok[4][6]=isok[6][4]=0;isok[2][8]=isok[8][2]=0;int last=s[0]-'0';int x;x=last;cnt[x]++;if(x==2){isok[1][3]=isok[3][1]=1;}else if(x==4){isok[1][7]=isok[7][1]=1;}else if(x==5){isok[4][6]=isok[6][4]=1;isok[2][8]=isok[8][2]=1;isok[3][7]=isok[7][3]=1;isok[1][9]=isok[9][1]=1;}else if(x==6){isok[3][9]=isok[9][3]=1;}else if(x==8){isok[7][9]=isok[9][7]=1;}rep(i,1,len){x=s[i]-'0';cnt[x]++;if(!isok[last][x]){flag=0;break;}else{if(x==2){isok[1][3]=isok[3][1]=1;}else if(x==4){isok[1][7]=isok[7][1]=1;}else if(x==5){isok[4][6]=isok[6][4]=1;isok[2][8]=isok[8][2]=1;isok[3][7]=isok[7][3]=1;isok[1][9]=isok[9][1]=1;}else if(x==6){isok[3][9]=isok[9][3]=1;}else if(x==8){isok[7][9]=isok[9][7]=1;}}last=x;}repd(i,1,9){if(cnt[i]>1){flag=0;}}if(flag){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0; }inline void getInt(int* p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}}else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}} }
转载于:https://www.cnblogs.com/qieqiemin/p/10994855.html
长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)相关推荐
- 长沙理工大学第十二届ACM大赛-重现赛I 主持人的烦恼 (sort)
链接:https://ac.nowcoder.com/acm/contest/1/I 来源:牛客网 主持人的烦恼 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...
- 长沙理工大学第十二届ACM大赛-重现赛 K - 大家一起来数二叉树吧
题目描述 某一天,Zzq正在上数据结构课.老师在讲台上面讲着二叉树,zzq在下面发着呆. 突然zzq想到一个问题:对于一个n个节点,m个叶子的二叉树,有多少种形态呐?你能告诉他吗? 对于第一组样例的解 ...
- 长沙理工大学第十二届ACM大赛-重现赛
年轮广场 时间限制:1秒 空间限制:131072K 题目描述 在云塘校区,有一个很适合晒太阳的地方----年轮广场 年轮广场可以看成n个位置顺时针围成一个环. 这天,天气非常好,Mathon带着他的小 ...
- 长沙理工大学第十二届ACM大赛-重现赛 L - 选择困难症
题目描述 小L有严重的选择困难症. 早上起床后,需要花很长时间决定今天穿什么出门. 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度. 小L ...
- 长沙理工大学第十二届ACM大赛 D 小M和天平
题目描述 小M想知道某件物品的重量,但是摆在他面前的只有一个天平(没有游标)和一堆石子,石子可以放左边也可以放右边.他现在知道每个石子的重量.问能不能根据上述条件,能不能测出所问的重量. 输入描述: ...
- 长沙理工大学第十二届ACM大赛 I.主持人的烦恼【贪心】
题目描述 一天zzq主持一项游戏,共n位同学,需要两两同学为一组来上台来玩一项游戏. 但是,众所周知,玩游戏的时候,如果两个人的颜值差距>=m,就会互相嫌弃. 所以,为了游戏能够好玩.在游戏开始 ...
- 山东理工大学第十二届ACM程序设计竞赛 - Cut the tree(树上启发式合并+线段树)
题目链接:点击查看 题目大意:给一个具有 N 个节点的有根树,以 1 号节点为根,节点编号从 1 开始,点有点权.树的第 H 层权值为深度为 H 的所有点的点权之和.树的总权值为所有层权值的最大值.问 ...
- 2021年第十二届蓝桥杯省赛 Java B组 第一场 全部题解
暴力杯?dp杯! 重铸国二荣光,省三义不容辞 感谢评论区的大佬给出的思路还有指正的一些错误地方,现都已更正,当然如果还有其他更优解法的也欢迎评论区指出 c/c++和Java的B组题目都已更新,正在备考 ...
- 郑州大学计算机系王院长,我院成功承办河南省第十二届ACM大学生程序设计竞赛...
5月6日至7日,由河南省计算机学会主办.我校承办的河南省第十二届ACM大学生程序设计竞赛在体育中心隆重举行.来自全省45所高校的231支参赛队近700名学生及200名带队教练参加了竞赛,参赛院校.参赛 ...
最新文章
- 条件变量pthread_cond_wait()和pthread_cond_signal()详解
- Java开发者跳槽必备:2021阿里Java面试题目大汇总
- SQL Server Extended Events (扩展事件)
- Oracle中根据表明获取对应表触发器名称
- 体验Windows Azure的Access Control Service
- 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验
- VS2010下使用dmp文件和pdb文件定位到dll中崩溃位置的方法
- java 实现 tcp_java实现TCP通信
- 漫画:三分钟了解敏捷开发
- 【转】DICOM:DICOM Print服务中PresentationContext协商之 MetaSOPClass与SOPClass对比分析!!!!!!!!
- STL源码剖析 入门开始 STL概论与版本简介
- catalog java,Java Connection getCatalog()方法与示例
- 计算机组成原理试卷分析,《计算机组成原理与汇编语言》试卷分析报告.doc.docx...
- grads插值_利用grads描述文件中的pdef做插值的实用方法,转模式的同学看过来~~...
- 项目分享之敲击床头盒控制床头灯的开关
- vip.163邮箱登录指南,163vip邮箱体验分享
- 服务器怎么买,腾讯云服务器购买三种流程介绍
- 最全数学各个分支简介
- Fiddler中Response 的Raw乱码问题解决
- 深度技术ghost win8 32位/64位装机旗舰版V2014