HDU 5641 King's Phone【模拟】
2024-09-30 16:47:07
题意:
给定一串密码, 判断是否合法。
- 长度不小于4
- 不能重复经过任何点
- 不能跳过中间点,除非中间点已经经过一次。
分析:
3*3直接记录出可能出现在两点之间的点,直接模拟就好。
注意审题,别漏了判断。
代码:
#include <cstdio>
#include<algorithm>
#include<cstring>
#include<map>
const int maxm = 15, mod = 1e9+7;
int m[maxm][maxm];
int vis[maxm], s[maxm];
void init()
{
m[1][3] = m[3][1] = 2;
m[2][8] = m[8][2] = 5;
m[3][7] = m[7][3] = 5;
m[1][9] = m[9][1] = 5;
m[4][6] = m[6][4] = 5;
m[7][9] = m[9][7] = 8;
m[1][7] = m[7][1] = 4;
m[3][9] = m[9][3] = 6;
}
int main (void)
{
int T;scanf("%d",&T);
init();
while(T--){
memset(vis, 0, sizeof(vis));
int k;scanf("%d",&k);
int flag = (k < 4);
for(int i = 0; i < k; i++){
scanf("%d",&s[i]);
if(s[i] > 9 || s[i] < 1) flag = 1;
if(flag) continue;
if(vis[s[i]]) flag = 1;
vis[s[i]] = 1;
if(i == 0) continue;
if(m[s[i]][s[i-1]] && !vis[m[s[i]][s[i-1]]]) flag = 1;
}
if(flag) printf("invalid\n");
else printf("valid\n");
}
}
最新文章
- 转载ali面
- POJ1741:tree
- linuxmint 默认不启动图形界面
- JS模式:又一个简单的工厂模式
- CC2540的使用入门
- Servlet容器的启动过程
- pylons使用多个数据库(multiple DB)
- java常用重构优化总结--自己亲身体验
- HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)
- zTree异步生成数据时无法获取到子节点的选中状态
- 通过 Jersey Http请求头,Http响应头,客户端 API 调用 REST 风格的 Web 服务
- hdu 4342 History repeat itself(数学题)
- 下拉刷新和上拉加载 Swift
- AS3条件编译
- 泛型里的super和extend
- Office免费激活方法!亲测有效!2019年4月3日测试
- Android studio 下 JNI 开发实例
- WebRequest/HttpWebRequest/HttpRequest/WebClient/HttpClient的区别
- super 的用法
- hadoop在zookeeper上的高可用HA