uestc 851 方老师与素数
看了大牛的代码
新技能get√
如何优雅的计算广搜的次数
1 #include<cstdio> 2 #include<cstring> 3 #include<cstring> 4 #include<algorithm> 5 #include<iostream> 6 #include<queue> 7 #include<string> 8 #include<cmath> 9 using namespace std; 10 #define MAXN 10001 11 12 bool prime[MAXN]; 13 int vis[MAXN]; 14 int a, b, t; 15 16 void deal() 17 { 18 for (int i = 2; i <= MAXN; ++i) 19 if (!prime[i]) 20 for (int j = i*i; j <= MAXN; j += i) 21 prime[j] = true; 22 /*for (int i = 0; i < 50; ++i) 23 if (!prime[i]) cout << i << " "; 24 cout << endl;*/ 25 } 26 27 int bfs() 28 { 29 queue<int> q; 30 q.push(a); 31 q.push(-1); 32 int ans = 0; 33 while (!q.empty()) { 34 int t = q.front(); 35 if (t == -1) { 36 q.pop(); 37 if (q.empty()) return -1; 38 ans++; 39 q.push(t); continue; 40 }q.pop(); 41 if (t == b) return ans; 42 int s; 43 for (int i = 1; i <= 9; ++i) { 44 s = i * 1000 + t % 1000; 45 if (!vis[s] && !prime[s]) { 46 q.push(s); 47 vis[s] = true; 48 } 49 } 50 for (int i = 0; i <= 9; ++i) { 51 s = i * 100 + t % 100 + t/1000*1000; 52 if (!vis[s] && !prime[s]) { 53 q.push(s); 54 vis[s] = true; 55 } 56 } 57 for (int i = 0; i <= 9; ++i) { 58 s = i * 10 + t % 10 + t/100*100; 59 if (!vis[s] && !prime[s]) { 60 q.push(s); 61 vis[s] = true; 62 } 63 } 64 for (int i = 0; i <= 9; ++i) { 65 s = i + t / 10 * 10; 66 if (!vis[s] && !prime[s]) { 67 q.push(s); 68 vis[s] = true; 69 } 70 } 71 } 72 return -1; 73 } 74 75 int main() 76 { 77 int t; 78 cin >> t; 79 deal(); 80 while (t--) { 81 cin >> a >> b; 82 memset(vis,0,sizeof(vis)); 83 int res = bfs(); 84 if (res == -1) puts("Impossible"); 85 else cout << res << endl; 86 } 87 return 0; 88 }
转载于:https://www.cnblogs.com/usedrosee/p/4260173.html
uestc 851 方老师与素数相关推荐
- UESTC 914 方老师的分身I Dijkstra
题意:求有向图的往返最短路的最长长度. 分析:求第一次到所有点的距离可以用一次Dijkstra求最短路求出来.考虑回来的路,想想就知道,从每个点回来的路即为将边的方向反转再求一次最短路后的结果. 所以 ...
- UESTC 915 -- 方老师的分身 II (spfa,dijkstra)
题目大意:求从一个点到另一个点至少经过k条路径的最短路径长度: 思路分析:用两个变量u和e来维护一个点的dis,u表示当前点的编号,e表示经过多少条边,dis[u][e] 表示走到u点经过e条边的最短 ...
- UESTC 915 方老师的分身II --最短路变形
即求从起点到终点至少走K条路的最短路径. 用两个变量来维护一个点的dis,u和e,u为当前点的编号,e为已经走过多少条边,w[u][e]表示到当前点,走过e条边的最短路径长度,因为是至少K条边,所以大 ...
- UESTC_方老师的分身 II CDOJ 915
方老师的分身 II Time Limit: 10000/5000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- 帮助方老师使用固态硬盘安装win10,赚了150软妹币(但是他赖账了!)
作为一个计算机专业的,具体点是软件工程,每次别人问自己是干啥的,总会被带入到对方的节奏:哦,能装系统,会修电脑... 今天方老师(一起工作了4年多的曾经是个真正的老湿!搞艺术的!已经提了离职报告了,不 ...
- 计算机网络笔记——概述、物理层、链路层(方老师408课程)
文章目录 前言 互联网概述 互联网发展的三个阶段 互联网标准化机构 互联网的组成 边缘部分的通信方式 核心部分的交换方式 我国计算机网络的发展 计算机网络的类别 计算机网络的性能 速率.带宽.吞吐量 ...
- uestc 方老师的分身 III 拓扑排序
没什么好说的.. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include< ...
- 快速滚动_方老师教滚动快速作文
五年级第一单元作文集阴沉天空中有一小束照着你的阳光.亲爱的孩子,让时间在知识的枝条上.智慧的绿叶上.成熟的果实上留下它勤奋的印痕!罗婉汀作文集 自律且努力,别让生活太安逸.亲爱的孩子,耕耘者最信 ...
- 《爱国主义主题教育》闻方老师
<爱国主义主题教育> 闻 方 [课程背景] 爱国主义教育是指树立热爱祖国并为之献身的思想教育.爱国主义教育是思想政治教育的重要内容.爱国主义是一面具有最大号召力的旗帜,是中华民族的优良传 ...
最新文章
- EJSS: 南土所梁玉婷组-生境决定了土壤植物系统中细菌、抗性基因和可移动元件间的关系...
- springboot后台弹出前台对话框_基于springboot的精品小说网站
- 【C++】Visual Studio教程(六) -更新Visual Studio
- 大津阈值分割matlab实验,OTSU(大津法)分割源程序(MATLAB版)
- 开学典礼上,施一公寄语:西湖大学绝不允许任何形式的学术不端!
- ubuntu内核损坏或误删除时的系统修复
- 在Django将已有数据库生成models文件
- 08 友盟项目--拆分日志为五个表---UDTF自定义函数
- 【kafka】Kafka Producer Sticky Partitioner kafka 生产者 粘性 分区器
- 【iOS开发】代理(delegate)
- 软件基本功:工作目标经常变化,要及时跟进
- 2016年第3本:启示录----打造用户喜爱的产品
- ArcCatalog连接PostgreSQL创建SDE库
- win8计算机无法安装打印机驱动程序,Win8电脑打印机驱动安装失败怎么办
- stm32 HAL 重映射
- html网页图片下方空隙太大,div+css排版图片IMG下边界有空隙
- linux双网卡配置两个ip,centos双线双ip配置,Windows双网卡双ip配置
- conda删除环境 显示cannot remove current environment. deactivate and run conda remove again
- python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件
- 大学英语综合教程四 Unit 3 课文内容英译中 中英翻译
热门文章
- mysql如何实现逻辑自增_每日一面 - mysql 的自增 id 的实现逻辑是什么样子的?
- python另存为excel_在Python中将Excel另存为HTML
- python实例属性引用-python之对象(实例)
- Java基础入门笔记-单根继承
- 6.6.1最优二叉树(赫夫曼树)
- java语言factory_一个简单例子解释 Java factory
- php隐藏做上传图片,php做图片上传功能
- java打字游戏代码_牛逼啊!一个随时随地写Python代码的神器
- 计算机考研各科目分数,考研各科目及分数
- mysql80连接不上本地服务器_小白教程:ubuntu服务器安装jupyter notebook, 并能够实现本地远程连接