unlock 描述 经济危机席卷全球,L国也收到冲击,大量人员失业. 然而,作为L国的风云人物,X找到了自己的新工作.从下周开始,X将成为一个酒店的助理锁匠,当然,他得先向部门领导展示他的开锁能力. 领导给了X一串钥匙,这串钥匙串在一个大圆环上,每把钥匙有一个编号(1..N).然后蒙上X的眼睛并把他带到一个圆形的大房间中.在这个房间中有N个上锁的门,用1..N表示,这串N把钥匙每一把正好打开一扇门(钥匙编号和门编号一致就可以打开). X的工作就是打开每扇门.他因为蒙着眼睛,不过可以沿着房间的墙壁…
xorand 描述 有q次操作,每次操作是以下两种: 1. 加入一个数到集合中 2. 查询,查询当前数字与集合中的数字的最大异或值,最大and值,最大or值 输入 第一行1个正整数Q表示操作次数 接下来Q行,每行2个数字,第一个数字是操作序号OP(1,2),第二个数字是X表示操作的数字 输出 输出查询次数行,每行3个整数,空格隔开,分别表示最大异或值,最大and值,最大or值 样例输入 [输入样例1] 5 1 2 1 3 2 4 1 5 2 7 [输出样例1] 7 0 7 5 5 7 [样例解释…
题目 HihoCoder - 1878 题目大意 给出k,让求出第k个回文数(k的“长度”不超过1e5) 题解 之前做过类似的题,是统计各阶段的数找到第K个回文数,但这里K太大,需要寻找新的方法. 打表找规律: 只有一位数:减一输出 否则: 若第0位为2~9 :首位减一,0~len-2反转贴后面 若第0位为1:若第1位为1~9:丢掉首位,剩下的反转贴后面 若第1位为0:丢掉首位,第1位改成9,2~len-2反转贴后面. AC代码 #include<cstdio> #include<ios…
string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字符.问是否能将 s 修改为 t. 有多组数据. [输入] 第一行一个整数 T 表示数据组数. 每组数据两行,第一行一个字符串 s,第二行一个字符串 t. [输出] 每组数据输出一行,如果能将 s 修改为 t,输出 Yes,否则输出 No. [输入样例] 2 a* aaaa a* ab [输出样例]…
[问题描述] 万里长城是中国强大的标志,长城在古代的用途主要用于快速传递军事消息和抵御 外敌,在长城上的烽火台即可以作为藏兵的堡垒有可以来点燃狼烟传递消息. 现在有一段 万里长城,一共有 N 个烽火台,有些烽火台里驻扎有士兵,而有一些烽火台没有驻扎.一 次将军巡视时发现了一个巨大的防卫漏洞,一个烽火台狼烟点燃后,并不是任意一个烽火 台就能看见,当距离超过 D 后就不能看见了,为了保证第一个烽火台的狼烟点燃后能顺利 传递到第 N 个烽火台,将军必须要在一些没有驻扎士兵的烽火台中安排士兵驻扎. 长城…
Change 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题.于是,Alice 找到了一道题让 Bob 做.Alice 有一张 N*M 的表格,每个格子上有一个值 a[i][j] (1≤i≤N,1≤j≤ M),Alice 将会给 Bob 若干个操作,操作分以下三类: 1. 交换两行 2. 交换两列 3. 输出某一个格子上的值 由于 Bob 正在为给 Alice 出题而发愁,他请你完成这个题. 输…
[描述] 小石头喜欢看电影,选择有 N 部电影可供选择,每一部电影会在一天的不同时段播 放.他希望连续看 L 分钟的电影.因为电影院是他家开的,所以他可以在一部电影播放过程中任何时间进入或退出,当然他不希望重复看一部电影,所以每部电影他最多看一次,也不能在看一部电影的时候,换到另一个正在播放一样电影的放映厅. 请你帮助小石头让他重 0 到 L 连续不断的看电影,如果可以的话,计算出最少看几 部电影. [输入格式] 第一行是 2 个整数 N,L,表示电影的数量,和小石头希望看的连续时间 接下来是…
[描述] 给你一个图,一共有 N 个点,2*N-2 条有向边. 边目录按两部分给出 1. 开始的 n-1 条边描述了一颗以 1 号点为根的生成树,即每个点都可以由 1 号点 到达. 2. 接下来的 N-1 条边,一定是从 i 到 1(2<=i<=N)的有向边,保证每个点都能到 1 有 q 次询问: 1 x w :表示将第 x 条边的边权修改为 w 2 u v :询问 u 到 v 的最短距离 [输入格式] 第一行是 2 个整数 N,Q,表示一共 N 个点 Q 次询问 接下来是 N-1 行,每行…
[输入] 一行两个整数 n P [输出] 从小到大输出可能的 k,若不存在,输出 None [样例输入 1] 5 5 [样例输出] 2 [样例解释] f[0] = 2 f[1] = 2 f[2] = 4 f[3] = 6 mod 5 = 1 f[4] = 5 mod 5 = 0 f[5] = 1 30%的数据保证 n, P ≤ 1000 100%的数据保证 n, P ≤ 10^9 一道算是比较综合的数论题吧,感觉不是很难. 先用矩阵快速幂求出k=1时f[n]的值. 然后解一个k*f[n]+x*p…
[描述] 给出一个表格,N 行 M 列,每个格子有一个整数,有些格子是空的.现在需要你 来做出一些调整,使得每行都是非降序的.这个调整只能是整列的移动. [输入] 第一行两个正整数 N 和 M. 接下来 N 行,每行 M 个整数,-1 表示这个格子是空的,其他的整数都在 [0, 10^9]范围,表示格子的数字. [输出] 若无解,输出 -1: 否则输出任意一个解,即一行 M 个正整数 p1, p2, · · · , pm,表示可以把初始表格的 pi 列,放在新表格的第 i 列,以得到一个合法的表…
[问题描述] 根据哥德巴赫猜想(每个不小于 6 的偶数都可以表示为两个奇素数之和),定义 哥德巴赫矩阵 A 如下:对于正整数对(i,j),若 i+j 为偶数且 i,j 均为奇素数,则 Ai,j = 1, 否则 Ai,j = 0.现在有若干询问(x1,y1,x2,y2),你需要回答下列式子的值 [输入] 第一行一个整数 m 接下来 m 行,每行四个整数 x1 y1 x2 y2,表示一个询问 [输出] m 行,每行一个整数,表示对应询问的答案 [输入样例] 1 1 1 3 5 [输出样例] 2 30…
Shop 有 n 种物品,第 i 种物品的价格为 vi,每天最多购买 xi 个. 有 m 天,第 i 天你有 wi 的钱,你会不停购买能买得起的最贵的物品.你需要求出你每天会购买多少个物品. [输入格式] 第一行两个整数 n,m.接下来 n 行每行两个整数 vi,xi.接下来 m 行每行一个整数 wi [输出格式] m 行每行一个整数,第 i 行表示第 i 天购买的物品数量. [输入样例] 3 3 1 1 2 2 3 3 5 10 15 [输出样例] 2 4 6 [数据规模] 对于 20%的数据…
or [描述] 构造一个长度为 n 的非负整数序列 x,满足 m 个条件,第 i 个条件为x[li] | x[li+1] | - | x[ri]=pi. [输入] 第一行两个整数 n,m.接下来 m 行每行三个整数 li,ri,pi. [输出] 如果存在这样的序列 x,第一行输出 Yes,第二行输出 n 个不超过 2^30-1 的非负整数表示x[1]~x[n],否则输出一行 No [输入样例 1] 2 1 1 2 1 [输出样例 1] 2 1 1 2 1 [子任务] 对于 30%的数据,n,m<…
Dp 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 一块土地有 n 个连续的部分,用 H[1],H[2],-,H[n] 表示每个部分的最初高度.有 n 种泥土可用,他们都能覆盖连续的 k 个部分,第 i 种泥土的价格为 C[i],可以使 i,i+1,-,i+k-1 部分的高度增加 E[i](如果 i+k>n,那就覆盖 i,-,n ),我们必须满足以下条件: 1.每种泥土只能使用一次. 2.成本必须小于等于 m . 要求在上述条件下,使得最低的部分的高度尽量高,请求出这个高度.…
Number 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 如果一个数能够表示成两两不同的 3 的幂次的和,就说这个数是好的. 比如 13 是好的,因为 13 = 9 + 3 + 1 . 又比如 90 是好的,因为 90 = 81 + 9 . 现在我们用 a[i] 表示第 i 小的好数. 比如 a[1] = 1, a[2] = 3, a[5] = 10 . 给定 L,R,请求出 a[L] 到 a[R] 的 和 mod 232. 输入格式 第一行一个整数 T,表示数据组数. 接…
Travel 题目背景 SOURCE:NOIP2015-SHY4 题目描述 小 A 要进行一次旅行.这回他要在序号为 1 到 n 的 n 个城市之间旅行.这 n 个城市之间共有 m 条连接两个城市的单行公路,对于第 i 条公路的风景有一个评分 ai.小 A 有一个要求:挑选旅行路线时经过某条路时看到的风景比上一条经过的公路的风景评分更高.小 A 想看到尽可能多的风景,请你告诉他他能找到的最长的满足他要求旅行路线有多长.(每条公路长度视为1,可以重复经过一个城市) 输入格式 第一行为两个整数数 n…
Game 题目背景 SOURCE:NOIP2015-SHY4 题目描述 Alice 和 Bob 正在玩一个游戏,两个人从 1 轮流开始报数,如果遇到 7 的倍数或者遇到的这个数的十进制表示中含 7 ,则遇到的那个人需要喊"过". 例如: 1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 -- 游戏过后,Bob 提出了一个问题:在区间 [L,R] 里有多少数要喊"过"? 输入格式 第一行一个整数 N ,表示共有 N 组数据. 接下来…
Snow 题目背景 SOURCE:NOIP2015-SHY4 题目描述 有一天,TT 要去 ABC 家.ABC 的大门外有 n 个站台,用 1 到 n 的正整数编号,TT 需要对每个站台访问恰好一定次数以后才能到 ABC 家.站台之间有 m 个单向的传送门,通过传送门到达另一个站台不需要花费任何代价.而如果不通过传送门,TT 就需要乘坐公共汽车,并花费 1 单位的钱.值得庆幸的是,任意两个站台之间都有公共汽车直达. 现在给定每个站台必须访问的次数,对于站台 i ,TT 必须恰好访问 Fi 次(不…
性质:每个位置的前缀和必须大于0,总和=0.以此dp即可. #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int mod=1e9+7; int n,m,f[2005][2005],ans,sum,mn=0x3f3f3f3f; char s[100005]; int main() { freopen("bracket.in",&qu…
传送门 可以发现需要维护连通性和两点连通时间. 前者显然是并查集的常规操作,关键就在于如何维护两点的连通时间. 然后会想到这个时候不能用路径压缩了,因为它会破坏原本树形集合的结构,因此可以启发式按size合并. 代码: #include<bits/stdc++.h> #define N 500005 using namespace std; int n,m,fa[N],lastans=0,siz[N],f[N],dep[N],tim=0; inline int read(){ int ans=…
题意:\(f(i):i\)能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子.每次给出n,求\(\sum_{i=1}^{n}f(i)\) 分析:\(1 \le n \le 2e7\),每次查询若都\(O(n)\)统计,肯定超时,必须打表. 类似打欧拉函数表的方式,对于数\(d\)以及素数\(p\),\(f(p)=2\): 当\(d|p\)时,若\(d|p^2\),则\(f(d*p^2)=0\):否则\(f(d*p)=f(d)/2\); 当\(d\dagger p\)时,\(f(…
先手动推出前10项,再上BM板子求出递推式 $A_n = 5A_{n-1} - 10A_{n-2} + 10A_{n-3} - 5A_{n-4} + A_{n-5}$,根据特征根理论可求出特征方程 $(x-1)^5$,设 $A_n = k_1n^4 + k_2n^3 + k_3n^2+k_4n+k_5$,代入前5项求出系数(用了高斯消元法解方程组). 这样虽然做出来了,但是感觉比较浪费时间,因为BM板子和高斯消元法的板子都不短,对手残狗不友好. 说明一下,差分法只能针对递推式的通项是对n的多项式…
2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个正方形.注意木棍不能弯折.问方案数. 正方形:四条边都相等.四个角都是直角的四边形. Input 第一行一个整数n. 第二行包含n 个整数ai,代表每根木棍的长度. Output 一行一个整数,代表方案数. Sample Input 8 4 5 1 5 1 9 4 5 Sample Output 3…
难得的一次Unrated,避免了重回1500的尴尬 其实题目都还可以,但只不过所有人T1都炸了,可能是数据的锅(假的) 而且我因为T1SB的把T2弃了,没想到是千年水题 T3莫名爆炸,然后TM的40分(再一次感谢Unrated) 链接 T1 题意很简单,主要是思想太牛逼 当时一直在找规律,浪费了2hours.最后搞了一个O(n)的递推然后炸掉 先讲一下递推 f[i][0]表示到第i轮时不经过1号点的方案数 f[i][1]表示到第i轮时经过过1号店且当前不在1号点的方案数 f[i][2]表示到第i…
对于这样看起来不像什么算法也没什么知识点的题,一脸懵逼的话不是手推规律就是打表找规律......... 当然还有一些超出你能力之外的数学题...... #include <cstdio> ; int n,ans,A[N]; inline int Max(int x,int y){ return x>y?x:y; } int main(){ scanf("%d",&n); ; ;i<=n;i++){ scanf("%d",&no…
太蠢了……$noip$ 后第一次模拟赛竟然是这样的……完全就是打击自信 / 降智…… 1. 假面 一道神仙概率 $dp$!第一次写…… 拿到题就发现血量 $m_i$ 的上限只有 $100$! 然后 $0$ 操作就可以用 $rate(i,j)$ 动态维护第 $i$ 个人血量为 $j$ 的概率啦. $1$ 操作比较麻烦(但是它故意弄得很少). 设 $live_i$ 和 $dead_i$ 分别为 $1$ 操作范围内的第 $i$ 个人活着和死了的概率,$g_{i,j}$ 是除 $i$ 以外有 $j$ 个…
题目 大意: 求二进制的a加到b的进位数. 思路: 列出前几个2进制,找规律模拟. #include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <math.h> #include <stack> #include <vector> using namespace std; int main() { int…
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n,m)\).每次移动可以选择移动到自己右上方的某一方格,且横坐标和纵坐标的变化都不能超过\(k(k\le2000)\).求一共有多少种移动方案? 思路: \(f[i][j]\)表示走到\((i,j)\)的方案数,一边DP一边维护二维前缀和即可. 时间复杂度\(\mathcal O(nm)\). 源代码…
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号.第一项是1/1,然后是1/2,2/1,3/1,2/2,… 输入输出格式 输入格式: 整数N(1≤N≤10000000) 输出格式: 表中的第N项 输入输出样例 输入样例#1: 复制 7 输出样例#1: 复…
题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你输出一个解,如果没有,输出0 0. 析:这个题目是找规律,先画一下前几个,画到第7个,就应该能找到规律,假设现在是第6个,并且是最后一个了,那么我们就可以在第5个基础上,在矩阵的 右边放上两列,正好是6,而且拐弯为偶数,如果是要放到7,那么就可以这样放,把第7条,放到第4行到第六列再向上一个,正好是…