题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意思是$i$指向$f(i)$的边权为$w(i)$的边,现在小A想知道,对于每个点的$s_i$和$m_i$.$s_i$:由$i$出发经过$k$条边,这$k$条边的权值和.$m_i$:由$i$出发经过$k$条边,这$k$条边的权值最小值. 题解: 倍增即可(倍增的套路,转移是唯一的,体现在本题中是每个点出度为1)…
100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Goto ProblemSet Description 陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺. 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选方法:假设共有 n 名候选陪审团成员,则由甲先提名…
5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 ms Memory Limits: 262144 KB Description Input Output Sample Input 5 5 1 2 1 3 2 3 3 4 4 5 Sample Output 5 Data Constraint Hint 样例解释 题解 不难发现,题目要求的就是每一个点…
5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms Memory Limits: 262144 KB Description Input Output Sample Input 3 2 2 1 4 2 3 5 1 1 4 2 2 5 1 3 2 1 3 1 2 4 1 3 5 1 1 3 2 2 5 1 2 2 1 2 2 1 2 1 1 2 1 1…
5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description Input Output Sample Input 5 5 1 4 0 5 2 2 1 2 0 1 0 2 3 4 4 0 3 0 3 1 1 2 2 1 1 Sample Output 9 Data Constraint Hint 题解 乍一看以为是贪心,贪心保留最大的 后来,发现有个诡异的地方…
5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description Input Output Sample Input 3 1 2 3 1 2 1 3 2 1 Sample Output 6 9 6 Data Constraint Hint 题解 我们考虑倒着做,即最开始是一个包含了 n 棵只有一个点的树的森林,然后不断加边,最后得到一棵完整的树.这样我们只…
5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description Input Output Sample Input 10 11 1 2 2 3 3 4 1 4 3 5 5 6 8 6 8 7 7 6 7 9 9 10 6 1 2 3 5 6 9 9 2 9 3 9 10 Sample Output 2 2 2 4 4 1 Data Constraint Hint…
[NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample Output 1 0 1 7 0 5 Data Constraint 题解 判断真假考虑并查集,设\(g[i]\)表示从当前这棵树的根到\(i\)的前缀异或值,那么对于当前这个区间,\(l-1\)和\(r\)讨论 设\(f1\)是\(l-1\)的根,\(f2\)是\(r\)的根 如果\(f1=f2\)…
[NOIP2017提高A组模拟9.17]猫 题目 Description 信息组最近猫成灾了! 隔壁物理组也拿猫没办法. 信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i-1 只猫,右边是第i+1 只猫.特别的,第1 只猫的左边是第n 只猫,第n 只猫的右边是第1 只猫.每只猫拥有价值,表示消灭它能给信息组组长带来的声誉. 注意,有的猫价值为负数,这意味着消灭它会损害组长的声誉.神刀手可以选择一些猫消灭掉.但是,…
[NOIP2017提高A组模拟9.17]组合数问题 题目 Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数. 举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3},{1,2})三种拆分方法. 小猫想知道,如果给定n,m 和k,对于所有的0<=i<=n,0<=j<=min(i,m),有多少对(i,j),满足S(i,j)是k 的倍数. 注意,0 也是k 的倍数,S(0,0)=1,对于i&…
[NOIP2017提高A组模拟9.12]Arrays and Palindrome[SPJ] 题目 Description Input Output Sample Input 1 6 Sample Output 6 2 1 5 Data Constraint 题解 题意 em--语言组织能力不行,看题吧 题解 结论题 可以证得\(A\)里最多只有2个奇数,否则无解 分情况讨论 0个奇数:\(a\)就是\(A\),\(b\)是\(A_1+1,A_2...A_{n-1},A_n-1\) 1个奇数:…
JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕老鼠. 猫虽然擅长捕老鼠,但是老鼠们太健美了,身手敏捷,于是猫想到了一个绝妙的办法:它决定点燃纯艾条,用烟熏老鼠. 农夫约的农庄里有N 个仓库,排成了一排,编号为1-N. 假设猫在第i 个仓库点燃艾条,烟雾就会充满该仓库,并向左右扩散Ai的距离,接着所有|i-j|<=Ai 的仓库j 的老鼠被消灭.…
[NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 Data Constraint 题解 题意 给出\(a[i]\),有一完全图,\(i\)与\(j\)之间的边的值为\(a[i] \oplus a[j]\)(\(\oplus\)为异或的意思) 求最小生成树及方案数 题解 科普一个东西,\(n\)个点的完全图的生成树个数是\(n^{n-2}\) 这个东西…
Description 有一个n个点n条边的有向图,每条边为<i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi. si:由i出发经过k条边,这k条边的权值和. mi:由i出发经过k条边,这k条边的权值最小值.   Input 第一行两个数n和k 第二行n个数f(i) 第三行n个数w(i) Output 每行两个数si和mi Sample Input 7 3 1 2 3 4 3 2 6 6 3 1 4 2 2 3 Sample Outpu…
21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变异的途径对研究生物学有着 至关重要的作用.现在,让我们来看这样一个模型: 1.所有的基因都可以看作一个整数或该整数对应的二进制码: 2.在 1 单位时间内,基因 x 可能会在其某一个二进制位上发生反转: 3.在 1 单位时间内,基因 x 可能会遭到可感染基因库内任一基因 y 的影响 而突变为 x X…
Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变异的途径对研究生物学有着 至关重要的作用.现在,让我们来看这样一个模型: 1.所有的基因都可以看作一个整数或该整数对应的二进制码: 2.在 1 单位时间内,基因 x 可能会在其某一个二进制位上发生反转: 3.在 1 单位时间内,基因 x 可能会遭到可感染基因库内任一基因 y…
简单无向图 题目 Description Input Output Sample Input 输入1: 4 2 1 1 2 输入2: 10 2 2 2 2 1 1 2 1 1 2 Sample Output 输出1: 2 输出2: 18012 Data Constraint 题解 题目大意 给出\(n\)个点和每个的度数 问有多少合法的简单无向图 分析 手模之后发现,每个联通块要么是链,要么是环 而链的个数是\(\dfrac{t1}{2}\)(\(t1\)表示1的个数,\(t2\)表示2的个数,…
Description 陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺. 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选方法:假设共有 n 名候选陪审团成员,则由甲先提名 s 位候选人,再由乙在甲提名的 s 位候选人中选出 t 名,作为最终的陪审团成员.显然这里应当有n ≥ s ≥ t.假设候选人 k 对甲.乙的有利程度都可以用一个二元组(…
Star 计划订购一本将要发行的周刊杂志,但他可不是为了读书,而是-- 集卡. 已知杂志将要发行 N 周(也就是 N 期),每期都会附赠一张卡片.Star 通 过种种途径,了解到 N 期杂志附赠的卡片种类.Star 只想订购连续的若干期, 并在这些期内收集所有可能出现的种类的卡片.现在他想知道,他最少需要订 购多少期. 对于 30%的数据,N ≤ 300: 对于 40%的数据,N ≤ 2000: 对于 60%的数据,N ≤ 5000: 对于 80%的数据,N ≤ 100000: 对于 100%的…
Description 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少. Input 输入文件包含三行. 第一行为三个正整数N,M和K. 第二行为N个正整数,表示第一个数列. 第三行为M个正整数,表述第二个数列. Output 输出文件包含一行,一个正整数表示第K小数. Sample Input Sample1: 2 3 4 1 2 2 1 3 Sample2: 5 5 18 7 2 3 5 8 3 1 3 2…
题目 trie 暴力就是对于每个询问的T个字符串 第i个和第i+1个直接个从后暴力枚举每位是否相同, 但这个方法TLE 我们考虑是否可以用更快的方法来求出两个字符串的最长公共后缀. 我们把所有的字符串从后往前扔进trie中,搞个lca就可以了,最长公共后缀就是lca的深度. #include <cmath> #include <iostream> #include <cstdio> #include <cstdlib> #include <cstrin…
题目 小w 偶然间见到了一个DAG. 这个DAG 有m 层,第一层只有一个源点,最后一层只有一个汇点,剩下的每一层都有k 个节点. 现在小w 每次可以取反第i(1 < i < n - 1) 层和第i + 1 层之间的连边.也就是把原本从(i, k1) 连到(i + 1, k2) 的边,变成从(i, k2) 连到(i + 1, k1). 请问他有多少种取反的方案,把从源点到汇点的路径数变成偶数条? 答案对998244353 取模. 状压dp 考虑用dp, 因为k<=10,而路径数只分奇偶,…
题目 分析 发现,\(C_{ai+aj+bi+bj}^{ai+aj}\),其实就等于从(0,0)走最短路到(ai+aj,bi+bj). 我们可以想办法将i.j分开,从(0,0)走最短路到(ai+aj,bi+bj)其实就相当于从(-ai,-bi)走最短路到(aj,bj), 那么,在坐标系上,计算出所有(-ai,-bi),到所有(ai,bi)的值, 但是对于i->i会被算上,减去这种情况: 又因为i->j会算两次,再除一个2,就是答案. #include <cmath> #includ…
题目 分析 我们发现,如果[l,r]的异或和为k是真要求,有且仅当不存在[l,i]和[i,r]两个区间的异或和不为k. 我们用带权并查集了维护这些,但是,由于区间不连续,我们将点权移到边上,对于区间[l,r]的点权异或和,变成[l,r+1]边权异或和.并查集合并时将大点连向小点, 最后通过并查集求异或点缀和,如果某个点没有限制,值为零. #include <cmath> #include <iostream> #include <cstdio> #include <…
题目 好吧,我表示比赛时完全看不懂题目 题目解释 良心的出题人为一道两三句可以讲清楚的题目,又写了一大坨恶心的解释. 容斥 其实题目就是有个数组a[1~n+1],已知a[n+1]=m,1<=a[1~n]<=m,求a数组的每个数的最大公因数为1的方案数. 正难则反, 用a树数组的可能总数为m^n,减去最大公因数不为1的总数. 直接求出m的质数,容斥一下就可以了. #include <cmath> #include <iostream> #include <cstdi…
题目 描述 题目已经足够清晰了,所以不再赘述题目大意. 思考历程 一眼看下去,好像是一道大水题! 然而,再看几眼,感觉又不是一道水题! 然后想了半天,感觉它特别难转移! 最终打了一个暴力,然后发现样例没有过去! 调试一波,发现原因是恶心的编号--(为什么要设置成这样,好不习惯啊--) 最终交上去,5分! 我的暴力不应该30分吗? 欲哭无泪-- 正解 这题的正解有一个很好的思想. 首先,显然这题是DP,因为数据太大,不能用网络流,贪心显然是错误的. 估计一下时间复杂度:O(NK)O(NK)O(NK…
题目 题目大意 给你一个01矩阵,每次询问从一个点是否可以走到另一个点. 每次走只能往右或者往下. 思考历程 这题啊,我想的时候真的是脑洞大开-- 首先,我一眼看下去,既然要询问是否联通,那么能不能求出它们的最短路,看看是不是它们的曼哈顿距离? 看到数据范围之后这个想法彻底凉凉-- 然后就开始考虑一些正经的方法-- 首先,考虑如何扫描线--类似扫描线的,扫一扫,维护一下,说不定就可以了呢? 然后,我发现无论如何,我都难以逃脱O(n2m2)O(n^2m^2)O(n2m2),就算是使用bitset也…
题目 题目大意 首先有一个定义: 对于一个数,如果和它互质的数可以组成一个等差数列,那么这个数叫"好数". 现在给你一个数列,有三种操作: 1.询问一段区间内的好数的个数. 2.将一段区间内的数分别模一个值. 3.将某个数修改. 思考历程 先看看这个题目. 好熟悉的题目啊!这不就是初中OJ上的某道数位DP的题吗? 然后发现不是那一道题,松了一口气. 一眼看下去,一定有什么数论.说不定在得到了什么结论之后,就变成一个非常简单的数据结构题了. 然后就在疯狂地推式子--最终没有推出来-- 于…
题面 45 在比赛中,我只想到了45分的暴力. 对于一个树中点对,相当于在他们的LCA及其祖先加上这个点对的贡献. 那么这个可以用dfs序+树状数组来维护. 100 想法 我想到了可能要用trie树来维护这个字符串的公共前缀. 然后这就面临了两个很严重的问题. 1.我对于每个子树都要建一个trie,所以这是\(O(n^2)\)的复杂度. 我想到了要合并儿子的信息,但是这个合并似乎是无法存储. 2.我还要处理xor的问题,我的想法是在trie上的每个结点上维护一个蜜汁容器. 可能这要用到xor的某…
题面 65 看到路径问题,就想到了套路:点分治. 对于一个分治中心,先把在其子树的结点的sum和mn求出来,分别表示该节点到分治中心的边权和和点权最小值. 然后把mn离散化,并插入权值线段树中,以sum为关键字. 为了解决最小值的问题,我们需要使得最小值在某棵子树中,然后枚举其他子树中mn值比他大的结点的贡献. 首先我想到的就是一棵一棵子树的增量法,但是因为每棵子树一进一出,所以在菊花图中的复杂度到达平方. 然后我就想到了先把这棵树先加进去,枚举一棵子树,然后再撤销掉线段树中的这棵子树. 枚举分…