1.) 小X的质数

线性筛就可以了。由唯一分解定理,如果 $ x = p_a \cdot p_b $ ,那么 \(x\) 也一定只能这样分解质因数。所以 \(x\) 也是符合题目条件的数。

#include <cstdio>
#include <ctype.h>
#include <stack>using namespace std;template<typename T>
void rd(T &num)
{char tt;while (!isdigit(tt = getchar()));num = tt - '0';while (isdigit(tt = getchar()))num = num * 10 + tt - '0';return;
}template<typename T>
void pt(T num)
{stack<char> S;do S.push(num % 10 + '0');while (num /= 10);while (!S.empty())putchar(S.top()), S.pop();putchar('\n');return;
}const int _N = 10002000;int P[_N], sum[_N], Pcnt;
bool mk[_N], mk2[_N];int main()
{int N = 10001000, T;mk[1] = 1;for (int i = 2; i <= N; ++i) {if (!mk[i]) P[++Pcnt] = i;for (int j = 1; j <= Pcnt && i * P[j] <= N; ++j) {mk[i * P[j]] = 1;if (!mk[i]) mk2[i * P[j]] = 1;if (i % P[j] == 0) break;}sum[i] = sum[i - 1];if (!mk[i] || mk2[i]) ++sum[i];}rd(T);while (T--) {int l, r;rd(l), rd(r);pt(sum[r] - sum[l - 1]);}return 0;
}

2.) 小X的密室

\(dis_{S, i}\) 表示以 \(S\) 集合的钥匙到达 \(i\) 点的最小消耗。跑最短路或者 BFS (因为边权都是 1 ,所以 BFS 其实比最短路更快)都行。改悔一下,考试的时候输入写错了……输入写错了……输入写错了……

#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
#include <ctype.h>using namespace std;template<typename T>
void rd(T &num)
{char tt;while (!isdigit(tt = getchar()));num = tt - '0';while (isdigit(tt = getchar()))num = num * 10 + tt - '0';return;
}const int _N = 8000;
const int INF = 1e9;struct data {int v, s, w;data(int v = 0, int s = 0, int w = 0):v(v), s(s), w(w) { }bool operator < (const data &tmp)const{return w > tmp.w;}
};struct edge {int v, s;edge(int v = 0, int s = 0):v(v), s(s) { }
};vector<edge> G[_N];
priority_queue<data> Q;
int N, K, M, dis[_N][3000], A[_N];void dijkstra(int beg1, int beg2)
{while (!Q.empty()) Q.pop();for (int i = 1; i <= N; ++i)for (int j = 0; j != (1 << K); ++j)dis[i][j] = INF;dis[beg1][beg2] = 0;Q.push(data(beg1, beg2, 0));//v S wwhile (!Q.empty()) {data p = Q.top();Q.pop();if (p.w > dis[p.v][p.s]) continue;for (int i = G[p.v].size() - 1; i >= 0; --i) {edge e = G[p.v][i];if ((p.s & e.s) == e.s) {if (dis[e.v][A[e.v] | p.s] > dis[p.v][p.s] + 1) {dis[e.v][A[e.v] | p.s] = dis[p.v][p.s] + 1;Q.push(data(e.v, A[e.v] | p.s, dis[e.v][A[e.v] | p.s]));}}}}return;
}int main()
{rd(N), rd(M), rd(K);for (int i = 1; i <= N; ++i)for (int j = 0; j < K; ++j) {int t;rd(t);if (t) A[i] |= 1 << j;}for (int i = 1; i <= M; ++i) {int x, y, s = 0;rd(x), rd(y);for (int j = 0; j < K; ++j) {int t;rd(t);if (t) s |= 1 << j;}G[x].push_back(edge(y, s));}dijkstra(1, A[1]);int ans = INF;for (int i = 0; i != (1 << K); ++i)ans = min(ans, dis[N][i]);if (ans < INF)printf("%d\n", ans);elseprintf("No Solution\n");return 0;
}

3.) 士兵训练

分析略恶心。首先,分析可得答案是子树内点权的严格次大值。然后考虑外部点权的“加成”。需要维护 \(p\) 为根的子树内的 \(a \geq b > c\) ,以及子树外的 \(x > y\)。然后如果 \(b + x \ne a\) ,直接更新答案就可以。否则答案应为 \(max(b + y, c + x)\) 。然后考虑怎么维护。
法一:最直观的想法是通过节点的 dfn 序重新编号,然后用一颗线段树维护子树内节点。再用前缀、后缀之类的方法维护子树外节点(重新编号后子树外的节点肯定就是 \([1, x]\) 和 \([y, n]\))。
法二:还是用前缀、后缀维护子树外节点,不过直接用子树内节点信息更新子树的答案。
维护前 \(k\) 大的正解是树套树,但是显然用不上,直接 \(O(k^2)\) 暴力合并两个区间(法二中是多个子树,所以两两合并即可)即可(暴力维护前k大方法)。

假装这是代码

转载于:https://www.cnblogs.com/ghcred/p/9497221.html

比赛-模拟赛 (17 Aug, 2018) (待施工)相关推荐

  1. 2020.03.18模拟赛17(第二题)

    2.[GDKOI训练]音乐节拍(mnotes) 题目描述 FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000)种音节组成,编号为1到N,而且一定按照从1到N的顺序进行弹奏, ...

  2. 2020.03.18模拟赛17(第三题)

    3.[GDKOI训练]电视游戏问题(vidgame) 题目描述 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶教授的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是 ...

  3. NOIP模拟赛 17.10.10

    初次见面(firstmeet) [题目背景] 雾之湖边,静得可怕. 露米娅出神凝望.黑白连衣裙,像极了绽放的墨黑和洁白的莲.身边的雾之 湖,倒映着血色天空.酒红的双眸,映照一切.低声浅笑,双臂伸直,她 ...

  4. 2018年10月17日普级B组【模拟赛】

    2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛 第一题--ISBN号码第一题--ISBN号码第一题--ISBN号码 博客链接: https ...

  5. EZ 2018 06 17 NOIP2018 模拟赛(十九)

    这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...

  6. ssl提高组周六模拟赛【2018.9.8】

    前言 开学后,新学年新气象,学校题库也迎来了新的改动,界面大改变,也可以比赛了. 所以这周就有比赛了,而在纪中被虐习惯后回来渴望继续被虐就来参加提高组模拟赛(反正今年也参加提高组) 成绩 只放Rank ...

  7. 2021.08.09【普及组】模拟赛C组比赛总结

    文章目录 2021.08.09[普及组]模拟赛C组比赛总结 写在前面: T1 :[普及模拟]生产武器 题目大意: 正解: T2 :[普及模拟]城市连接 题目大意: 正解: T3 :[普及模拟]抢救文件 ...

  8. 2018.10.9模拟赛

    2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...

  9. JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组

    本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...

最新文章

  1. MultiBoot设计参考链接
  2. 大神打造生态链,从F2全网通开始
  3. “Word.Tables”并不包含“Item”的定义的解决办法
  4. 又酸了!腾讯员工福利再升级:入职满15年可“提前退休”
  5. 最近一到在混“智器粉丝团”,好久没写blog了~
  6. dmol3给定关键字不在字典中_Materials Studio自学系列——软件安装常见问题及解决方法...
  7. bzoj2631:tree
  8. python 规则引擎 drools_SpringBoot2整合Drools规则引擎及案例详解
  9. PPT,我的视频制作利器
  10. 业务如何驱动技术发展
  11. 微博html5版开视频怎么退出,微博怎么取消视频号?微博视频号怎么关闭
  12. 奇迹mu开服教程:开服服务端的架设及服务器推荐需要那些东西
  13. Quorum共识简析
  14. 转:《七周成为数据分析师》总结
  15. My blog has been migrated to GitHub.
  16. 关于MLPerf的一些调查
  17. 微软开源自有云服务器专属 Linux 发行版 CBL-Mariner,可在 GitHub 免费下载!
  18. linux 蓝牙 手机遥控器,嵌入式Android小项目之万能手机遥控器详解
  19. 微信小程序:大红喜庆版UI猜灯谜又叫猜字谜
  20. Ubuntu安装后MTK系列网卡无法开启wifi和蓝牙的部分解决方式

热门文章

  1. JBoss、Tomcat Classloader不完全分析
  2. Python “with” keyword
  3. SVD分解及应用的直观理解
  4. 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
  5. HashMap 你真的了解吗?
  6. 批处理-取年月日、时分秒毫秒
  7. 查看mysql当前表使用的存储引擎(转)
  8. QTP自动化测试自学手册V2.0版本
  9. 对Erlang开发者的几点建议
  10. 触屏设备手势简历研究