题意:

给定一串密码, 判断是否合法。

  • 长度不小于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");
}
}

最新文章

  1. 转载ali面
  2. POJ1741:tree
  3. linuxmint 默认不启动图形界面
  4. JS模式:又一个简单的工厂模式
  5. CC2540的使用入门
  6. Servlet容器的启动过程
  7. pylons使用多个数据库(multiple DB)
  8. java常用重构优化总结--自己亲身体验
  9. HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)
  10. zTree异步生成数据时无法获取到子节点的选中状态
  11. 通过 Jersey Http请求头,Http响应头,客户端 API 调用 REST 风格的 Web 服务
  12. hdu 4342 History repeat itself(数学题)
  13. 下拉刷新和上拉加载 Swift
  14. AS3条件编译
  15. 泛型里的super和extend
  16. Office免费激活方法!亲测有效!2019年4月3日测试
  17. Android studio 下 JNI 开发实例
  18. WebRequest/HttpWebRequest/HttpRequest/WebClient/HttpClient的区别
  19. super 的用法
  20. hadoop在zookeeper上的高可用HA

热门文章

  1. 谷歌的 I/O 2019,究竟推出了什么新特性?
  2. spark源码编译,运行example遇到:NoClassDefFoundError: org/spark_project/guava/cache/CacheLoader
  3. (转)淘淘商城系列——SSM框架整合之Service层整合
  4. 5-Java-C(单位分数)
  5. 06CSS列表
  6. spring的IOC的简单理解
  7. galera cluster安装与配置
  8. Linux系统用户、组和权限管理
  9. 修改Python的镜像源
  10. Python多线程豆瓣影评API接口爬虫