计蒜客NOIP2017提高组模拟赛(四)day1

T1:小X的质数

小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小 X 认为,质数是一切自然数起源的地方。

在小 X 的认知里,质数是除了本身和 1 以外,没有其他因数的数字。

但由于小 X 对质数的热爱超乎寻常,所以小 X 同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。

于是,我们定义,一个数是小 X 喜欢的数,当且仅当其是一个质数,或是两个质数的乘积。

而现在,小 X 想要知道,在 L 到 R 之间,有多少数是他喜欢的数呢?

输入格式

第一行输入一个正整数 Q,表示询问的组数。

接下来 Q行。包含两个正整数 L 和 R。保证 L≤R

输出格式

输出 Q 行,每行一个整数,表示小 X 喜欢的数的个数。

数据范围与约定

样例解释 1

666 以内的质数有 2,3,5,而 4=2∗2,6=2∗3。因此 2,3,4,5,6 都是小 X 喜 欢的数,而 1 不是。

样例输入1

1
1 6

样例输出1

5

样例输入2

10
282 491
31 178
645 856
227 367
267 487
474 697
219 468
582 792
315 612
249 307

样例输出2

97
78
92
65
102
98
114
90
133
29

样例输入3

10
20513 96703
15236 86198
23185 78205
40687 48854
42390 95450
63915 76000
36793 92543
35347 53901
44188 76922
82177 90900

样例输出3

24413
23001
17784
2669
16785
3833
17712
6028
10442
2734

T2:小X的密室

小 X 正困在一个密室里,他希望尽快逃出密室。

密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间。

密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间 X 到房间 Y 的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙(每种钥匙都要有才能通过)。幸运的是,钥匙在打开传送门的封印后,并不会消失。

然而,通过密室的传送门需要耗费大量的时间,因此,小 X 希望通过尽可能少的传送门到达出口,你能告诉小 X 这个数值吗?

另外,小 X 有可能不能逃出这个密室,如果是这样,请输出 "No Solution"

输入格式

第一行三个整数 N,M,K,分别表示房间的数量、传送门的数量以及钥匙的种类数。

接下来 N 行,每行 K01,若第 iii 个数为 1,则表示该房间内有第 iii 种钥匙,若第 iii 个数为 0,则表示该房间内没有第 iii 种钥匙。

接下来 M 行,每行先读入两个整数 X,Y,表示该传送门是建立在 X 号房间,通向 Y 号房间的,再读入 K01,若第 iii 个数为 1,则表示通过该传送门需要 iii 种钥匙,若第 iii 个数为0,则表示通过该传送门不需要第 iii 种钥匙。

输出格式

输出一行一个 "No Solution",或一个整数,表示最少通过的传送门数。

数据规模与约定

更多测试样例

输入样例 4

输出样例 4

样例输入1

3 3 2
1 0
0 1
0 0
1 3 1 1
1 2 1 0
2 3 1 1

样例输出1

2

样例输入2

20 40 0
10 18 
18 14 
19 13 
4 14 
13 10 
5 18 
14 1 
13 13 
10 16 
19 11 
11 15 
10 18 
5 8 
12 19 
7 8 
18 6 
14 5 
9 5 
2 17 
13 14 
18 15 
8 18 
7 1 
13 5 
4 6 
17 4 
1 4 
10 10 
13 8 
19 2 
4 9 
3 3 
5 10 
17 5 
12 8 
19 11 
3 16 
17 10 
18 16 
13 13 

样例输出2

No Solution

样例输入3

20 50 0
8 10 
7 17 
5 11 
14 20 
20 16 
8 19 
12 11 
18 7 
17 5 
4 15 
16 11 
11 8 
10 12 
8 9 
16 8 
3 16 
1 6 
3 20 
6 10 
11 12 
6 8 
18 17 
14 17 
3 11 
4 19 
9 2 
8 6 
13 2 
5 2 
12 19 
8 10 
14 7 
6 12 
6 4 
13 2 
8 7 
13 19 
17 9 
3 14 
18 20 
2 14 
4 17 
20 15 
14 15 
2 15 
7 20 
12 12 
18 10 
15 9 
15 9 

样例输出3

4
T3:小X的佛光

小 X 是远近闻名的学佛,平日里最喜欢做的事就是蒸发学水。

小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X 城时只建造 N – 1 条边,使得城市的各个地点能够相互到达。

小 X 计划蒸发 Q 天的学水,每一天会有一名学水从 A 地走到 B 地,并在沿途各个地点留下一个水塘。此后,小 X 会从 C 地走到 B 地,并用佛光蒸发沿途的水塘。由于 X 城是一个学佛横行的城市,学水留下的水塘即使没有被小 X 蒸发,也会在第二天之前被其他学佛蒸发殆尽。

现在,小 X 想要知道,他每一天能够蒸发多少水塘呢?

输入格式

第一行三个整数 N,Q,num,分别表示 X 城地点的个数,小 X 蒸发学水的天数,以及测试点编号。注意,测试点编号是为了让选手们更方便的获得部分分,你可能不需要用到这则信息,在下发的样例中,测试点编号的含义是该样例满足某一测试点限制。

接下来 N – 1 行,每行两个整数 X,Y,表示 X 地与 Y 地之间有一条边。

接下来 Q 行,每行三个整数 A,B,C,表示一天中,有一名学水从 A 地走到 B 地,而小 X 会从 C 地走到 B 地。

输出格式

输出 Q 行,每行一个整数,表示小 X 能够蒸发的水塘数。

数据规模与约定

特殊性质 1:第 i 条边连接第 i 和第 i+1个地点。

特殊性质 2A=C

更多测试样例

样例输入 2

样例输出 2

样例输入 3

样例输出 3

样例输入 4

样例输出 4

 

样例输入

3 3 1
1 2
2 3
1 2 3
1 1 3
3 1 3

样例输出

1
1
3

T1:
将线性筛数变形即可
可见线性筛数既可以筛质数,也可以顺便判断质数的一些情况

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<algorithm>
 4 #include<cstring>
 5 #define MAXN 10000001
 6 using namespace std;
 7 int prime[MAXN],cnt;
 8 bool b[MAXN];
 9 bool c[MAXN];
10 int f[MAXN];
11 int main()
12 {
13 //    freopen("data.in","r",stdin);
14     b[1]=1;
15     for(int i=2;i<MAXN;i++){
16         if(!b[i]){
17             prime[++cnt]=i;
18         }
19         for(int j=1;j<=cnt&&i*prime[j]<MAXN;j++){
20             b[i*prime[j]]=1;
21             c[i*prime[j]]+=(!b[i]);
22             if(i%prime[j]==0){
23                 break;
24             }
25         }
26     }
27     for(int i=1;i<MAXN;i++){
28         f[i]=f[i-1];
29         if(!b[i]||c[i]){
30             f[i]++;
31         }
32     }
33     int Q;
34     scanf("%d",&Q);
35     for(int i=1;i<=Q;i++){
36         int L,R;
37         scanf("%d%d",&L,&R);
38         printf("%d\n",f[R]-f[L-1]);
39     }
40     return 0;
41 }
Code1

T2:

由于每条边的边权都是1,宽搜即可

钥匙用二进制存贮,然后可以预处理下子集即可高效判断

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<vector>
 6 #define MAXN 5005
 7 #define MAXM 6005
 8 #define INF 0x7f7f7f7f
 9 using namespace std;
10 int qL[11000005],qK[11000005],L=1,R;
11 int d[MAXN][2050];
12 int n,m,k;
13 int key_room[MAXN];
14 int first[MAXN],Next[MAXM],to[MAXM],w[MAXM],cnt;
15 //single edge
16 int bel[2050][2050];
17 void Add(int x,int y,int key){
18     Next[++cnt]=first[x];first[x]=cnt;to[cnt]=y;w[cnt]=key;
19 }
20 void bfs(){
21     memset(d,0x7f,sizeof(d));
22     qL[++R]=1;
23     qK[R]=key_room[1];
24     d[qL[R]][qK[R]]=0;
25     while(L<=R){
26         int p=qL[L],key=qK[L];L++;
27         int D=d[p][key];
28         for(int i=first[p];i;i=Next[i]){
29             int j=to[i];
30             if(!bel[key][w[i]]) continue;
31             int dk=(key|key_room[j]);
32             if(d[j][dk]>D+1){
33                 d[j][dk]=D+1;
34                 qL[++R]=j;
35                 qK[R]=dk;
36                 if(n==j){
37                     printf("%d\n",d[j][dk]);
38                     return ;
39                 }
40               }
41         } 
42     }
43     printf("No Solution\n");
44 }
45 int main()
46 {
47 //    freopen("data.in","r",stdin);
48     scanf("%d%d%d",&n,&m,&k);
49     for(int i=1;i<=n;i++){
50         for(int j=0;j<k;j++){
51             int c;
52             scanf("%d",&c);
53             key_room[i]+=(c<<j);
54         }
55     }
56     for(int i=1;i<=m;i++){
57         int x=0,y=0,need=0;
58         scanf("%d%d",&x,&y);
59         for(int j=0;j<k;j++){
60             int c;
61             scanf("%d",&c);
62             need+=(c<<j);
63         }
64         Add(x,y,need);
65     }
66     bel[0][0]=1;
67     for(int i=1;i<(1<<k);i++){
68         for(int j=i;;j=i&j){
69             bel[i][j]=1;
70             j--;
71             if(j<0){
72                 break;
73             }
74         }
75     }
76     bfs();
77     return 0;
78 }
Code2

T3:

裸LCA

注意下分类讨论

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<algorithm>
 4 #include<cstring>
 5 #define MAXN 200005
 6 #define LOG 21
 7 using namespace std;
 8 int n,num;
 9 int first[MAXN],Next[MAXN*2],to[MAXN*2],cnt;
10 int dep[MAXN];
11 int fa[LOG][MAXN];
12 //double edge
13 void Add(int x,int y){
14     Next[++cnt]=first[x];first[x]=cnt;to[cnt]=y;
15     Next[++cnt]=first[y];first[y]=cnt;to[cnt]=x;
16 }
17 void dfs(int x){
18     for(int e=first[x];e;e=Next[e]){
19         int y=to[e];
20         if(y==fa[0][x]){
21             continue;
22         }
23         fa[0][y]=x;
24         dep[y]=dep[x]+1;
25         dfs(y);
26     }
27 }
28 int lca(int x,int y){
29     if(dep[x]<dep[y]){
30         swap(x,y);
31     }
32     for(int i=dep[x]-dep[y],p=0;i;i>>=1,p++){
33         if(i&1){
34             x=fa[p][x];
35         }
36     }
37     if(x==y){
38         return x;
39     }
40     for(int k=LOG-1;k>=0;k--){
41         if(fa[k][x]!=fa[k][y]){
42             x=fa[k][x];
43             y=fa[k][y];
44         }
45     }
46     return fa[0][x];
47 }
48 int dist(int x,int y){
49     int LCA=lca(x,y);
50     return dep[x]-dep[LCA]+dep[y]-dep[LCA];
51 }
52 int main()
53 {
54     int T;
55     scanf("%d%d%d",&n,&T,&num);
56     for(int i=1;i<n;i++){
57         int x,y;
58         scanf("%d%d",&x,&y);
59         Add(x,y);
60     }
61     dfs(1);
62     for(int k=1;k<LOG;k++){
63         for(int i=1;i<=n;i++){
64             fa[k][i]=fa[k-1][fa[k-1][i]];
65         }
66     }
67     for(int i=1;i<=T;i++){
68         int A,B,C;
69         scanf("%d%d%d",&A,&B,&C);
70         printf("%d\n",(dist(B,A)+dist(B,C)-dist(A,C))/2+1);
71     }
72     return 0;
73 }
Code3

 

转载于:https://www.cnblogs.com/w-h-h/p/7623588.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# combobox集合数据不显示_Excel也能玩转百万数据

最近一方君工作中要查询编辑很多的数据&#xff08;超过30万行&#xff0c;25个字段&#xff09;&#xff0c;这么多数据放在Excel表中当然是没办法操作的&#xff0c;筛选的时候很容易崩溃&#xff0c;原来用得很顺滑的一些公式&#xff0c;一计算就未响应&#xff0c;多点几下…

scada系统集成_MES/MOM与WMS系统集成应用案例-系统接口、交互数据分析

写在面前(By 小智)前面我们介绍了西门子、罗克韦尔、施耐德、达索等的MES/MOM平台(见文末推荐)也绍和分析了MES与ERP之间的系统集成案例&#xff1a;MES与EPR进行系统集成的实际案例-系统接口、交互数据分析同时分享了各种系统之间集成的文章&#xff1a;Teamcenter、TIA Porta…

ftl 展示图片_视频号变迁的内容展示逻辑

最初的视频号只有单列展示&#xff0c;只有关注栏&#xff0c;并没有朋友和热门区分。产出内容限制为不超过 1 分钟的视频&#xff0c;或 9 张以内的图片。单列信息流、时间倒序排列(也存在个别特例)。这里想到之前龙哥说的关于朋友圈的思考&#xff1a;朋友圈是一个广场&#…

10.3 考试 (考得不好)

T1 我只能说 它是一个比较暴力的dp&#xff0c;需要人力讨论... 所以考试觉得讨论太麻烦&#xff0c;直接内心崩溃了....(好像这也是我考炸的原因吧) 教训&#xff1a;以后要勤快一些&#xff0c;代码能力 唉唉唉 #include <cstdio> #include <cstring> #include &…

小程序[渲染层网络层错误] failed to load image_游戏中水的渲染技术

水的渲染一直是图形学需要解决的问题&#xff0c;本篇博客主要介绍用傅里叶变换算法实现的水反射&#xff0c;也是一种假反射效果&#xff0c;目的是优化效率。实现的效果如下图所示&#xff1a;使用傅里叶系数来表示地形高度的假反射效果&#xff0c;在我们开发的游戏中使用水…

pip install 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in

当python在window环境中通过pip安装pandas报标题这样的错&#xff0c;主要是因为python默认编码格式是&#xff1a;ascii 在https://www.python.org/dev/peps/pep-0100/文章中有介绍 解决方法&#xff1a;在python/lib/site.py中加入 import sysreload(sys)sys.setdefaultenc…

jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准

JDBC概述APIJDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API&#xff0c;可以为多种关系数据库提供统一访问&#xff0c;它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准&#xff0c;据此可以构建更高级的工具和接口&#xff0c;使…

怎样判断电饭锅温度传感器的好坏?_空调温度传感器的作用与检测。

温度传感器是指对温度进行感应&#xff0c;并将感应的温度变化情况转换为电信号的功能部件。我们在练习温度传感器检测代换之前&#xff0c;要先对温度传感器的安装位置、结构特点和工作原理有一定的了解。1、温度传感器的安装位置及结构在空调器室内机中&#xff0c;通常设有两…

java去掉图片边框颜色_sharp 去除图片边框

trim接受参数是颜色相似度, 并不能指定边框颜色, 所以有可能会误删除内容, 需要注意trim 需要转为buffer或者文件后再次操作, 否则图片信息不变从剪裁效果来看, 精度和速度都是可以的const sharp require("sharp");const path "./html/a.png";const outp…

java mail 不用密码_iPhone 无需越狱,简单给 App 加密码锁

在手机上总有些小秘密&#xff0c;也有些APP不想被打开。由于iOS本身限制&#xff0c;想给APP加上密码锁&#xff0c;一般都是需要越狱才能实现。其实在iOS 12就加入了【屏幕使用时间】&#xff0c;用来更好设置APP使用时间的限额。屏幕使用时间屏幕时间功能可以协助您了解自己…

spark内存溢出怎么解决_和平精英:更新需要预留6G内存,玩家抱怨手机扛不住,怎么解决?...

嗨&#xff0c;小伙伴们大家好呀&#xff01;《和平精英》新版本终于来了哈&#xff0c;小伙伴们在22号上午登录游戏&#xff0c;就可以收到更新提示&#xff0c;点击进行更新就好了。或者是在各个应用商店里等待更新推送&#xff0c;也行哦&#xff01;但是呢&#xff0c;每到…

【转】LDA数学八卦

转自LDA数学八卦 在 Machine Learning 中&#xff0c;LDA 是两个常用模型的简称&#xff1a; Linear Discriminant Analysis 和 Latent Dirichlet Allocation&#xff0c; 在这篇文章中我们主要八卦的是后者。LDA 是一个在文本建模中很著名的模型&#xff0c;类似于 SVD, PLSA …

电脑字体模糊_小红书上传视频模糊?做小红书视频99%的工具都在这了

到现在小红书视频号功能已经上线快三个月了&#xff0c;越来越多的小伙伴开始拍视频、创作视频笔记&#xff0c;但是对于新接触视频的小伙伴来说&#xff0c;拍摄视频好像是一件很难的事&#xff0c;特别是不清楚该选择什么拍摄设备、不知道怎么剪辑视频&#xff0c;还有如何上…

谷歌浏览器不能上网_谷歌浏览器插件下载及安装教程!

emmm......这篇文章的内容非常小白&#xff0c;相信大部分人都会这个基本操作。但是阁主相信还有些妹子操作不来&#xff0c;如果还没有男朋友&#xff0c;那不是铁定不会安装谷歌浏览器插件么&#xff1f;其实“谷歌浏览器插件”这个组合&#xff0c;可以解决很多问题&#xf…

高级技巧之Lambda表达式

1.Lambda表达式简介 其本质上是一种匿名方法&#xff0c;它既没有方法名&#xff0c;也即没有访问修饰符和返回值类型&#xff0c;使用它来编写代码将会更加简洁&#xff0c;也更加易读。 2.使用该表达式需要配置的数据 3.传统java和使用Lambda表达式的对比 0&#xff09;总结&…

设计模式之——Builder建造模式

Builder模式又叫建造模式&#xff0c;是用于组装具有复杂结构的实例的模式。 示例程序是编写一个文档&#xff0c;并且写入到文件中&#xff0c;该文档具有以下结构&#xff0c;含有标题&#xff0c;字符串&#xff0c;一些条目。 Builder抽象类&#xff0c;为建造模式的核心pa…

java程序员_Java和Python的区别 好程序员帮大家解读

Java和Python的区别 好程序员今天先来解读Java编程语言的优势&#xff0c;人工智能和大数据火爆一时&#xff0c;随之而来&#xff0c;引起了编程语言的人气暴涨。而Java和Python作为最炙手可热的编程语言从一开始便赢得了众多程序员的青睐。凭借各自强大的性能和优势&#xff…

门户网站运营方案_网络营销方案涉及的工作内容有哪些

问&#xff1a;在公司从事网络营销推广工作&#xff0c;想问下要撰写网络营销方案&#xff0c;要涉及到哪些层面&#xff0c;工作内容有哪些呢&#xff1f;答&#xff1a;总的来说&#xff0c;网络营销方案涉及到&#xff1a;网站技术&#xff0c;市场营销&#xff0c;网络应用…

用宝塔本地搭建php,Windows系统如何使用宝塔面板一键快速搭建本地服务器环境(LNMP/LAMP)...

宝塔面板宝塔面板类似于wamp&#xff0c;xampp等一键集成环境。但是宝塔面板操作更简单&#xff0c;更新更快。个人建议使用宝塔替代wamp。(LNMP等环境不再赘述&#xff0c;请自行百度。建议使用LNMP环境&#xff0c;即NginxMySQLPHP环境)下载前往宝塔面板官网https://www.bt.c…

C# File类的操作

File类&#xff0c;是一个静态类&#xff0c;主要是来提供一些函数库用的。静态实用类&#xff0c;提供了很多静态的方法&#xff0c;支持对文件的基本操作&#xff0c;包括创建&#xff0c;拷贝&#xff0c;移动&#xff0c;删除和打开一个文件。File类方法的参量很多时候都是…