[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&…
题目 分析 我们发现,如果[l,r]的异或和为k是真要求,有且仅当不存在[l,i]和[i,r]两个区间的异或和不为k. 我们用带权并查集了维护这些,但是,由于区间不连续,我们将点权移到边上,对于区间[l,r]的点权异或和,变成[l,r+1]边权异或和.并查集合并时将大点连向小点, 最后通过并查集求异或点缀和,如果某个点没有限制,值为零. #include <cmath> #include <iostream> #include <cstdio> #include <…
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.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}\) 这个东西…
21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变异的途径对研究生物学有着 至关重要的作用.现在,让我们来看这样一个模型: 1.所有的基因都可以看作一个整数或该整数对应的二进制码: 2.在 1 单位时间内,基因 x 可能会在其某一个二进制位上发生反转: 3.在 1 单位时间内,基因 x 可能会遭到可感染基因库内任一基因 y 的影响 而突变为 x X…
Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变异的途径对研究生物学有着 至关重要的作用.现在,让我们来看这样一个模型: 1.所有的基因都可以看作一个整数或该整数对应的二进制码: 2.在 1 单位时间内,基因 x 可能会在其某一个二进制位上发生反转: 3.在 1 单位时间内,基因 x 可能会遭到可感染基因库内任一基因 y…
题面 45 在比赛中,我只想到了45分的暴力. 对于一个树中点对,相当于在他们的LCA及其祖先加上这个点对的贡献. 那么这个可以用dfs序+树状数组来维护. 100 想法 我想到了可能要用trie树来维护这个字符串的公共前缀. 然后这就面临了两个很严重的问题. 1.我对于每个子树都要建一个trie,所以这是\(O(n^2)\)的复杂度. 我想到了要合并儿子的信息,但是这个合并似乎是无法存储. 2.我还要处理xor的问题,我的想法是在trie上的每个结点上维护一个蜜汁容器. 可能这要用到xor的某…
题目描述 输入 输出 样例输入 1 10000 3 10000 5 10000 0 0 样例输出 1 11 95 数据范围 每个测试点数据组数不超过10组 解法 状态压缩动态规划. 设f[i][j]表示第i行状态为j的方案数: f[i][j]=sum(f[i−1][k])(其中j可以从k中转移过来) 预处理出所有转移合法的情况. 然后矩阵乘法优化即可. 代码 #include<iostream> #include<stdio.h> #include<math.h> #i…
简单无向图 题目 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%的…
题目链接: 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)…
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…
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…
题目 好吧,我表示比赛时完全看不懂题目 题目解释 良心的出题人为一道两三句可以讲清楚的题目,又写了一大坨恶心的解释. 容斥 其实题目就是有个数组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…
题目 分析 首先用\(a_i\)表示达到目标的步数\(B_i-A_i(mod 4)\) 根据粉刷栅栏,先不管mod 4的情况,答案就是\(\sum\max(a_i-a_{i+1},0)\) 那我们刚才做个差分\(a_i-=a_{i+1}\) 当我们给i增加高度, 那么\(a_i-4,a_{i+1}+4\) 当我们给区间增加高度,那么因为中间的+4-4抵消了,所以 \(a_l-4,a_r+4\) 那么我们考虑 \(a_l\)为1.2.3的情况, 就读者私下讨论. #include <cmath>…
第一题,典型的隔板问题, 但是我忘记隔板问题怎么打,一开始在花了1小时,还是没想出来,果断弃疗, 最后的40分钟,我打完了第二题,接着又用了20分钟推敲出一种极其猥琐的式子来代替,可惜预处理的阶乘忘记mod,只拿了40分. 好伤心,60分就这样飞走了(:′⌒`) 第二题很像多米诺骨牌,于是就找规律,找了半天都没有发现, 于是考虑打60分dp,然后转念一想,dp不就是个递推式吗,然后就用矩阵快速幂搞到了100分. 第三题有点坑爹,考虑了dp.贪心,最后还是失败了. 正解是类似于粉刷栅栏的神奇贪心.…
题目 分析 设表示每一行的状态,用一个4位的二进制来表示,当前这一行中的每一个位数对下一位有没有影响. 设\(f_{i,s}\)表示,做完了的i行,其状态为s,的方案数. 两个状态之间是否可以转移就留给读者自己思考了. 答案就是\(f_{n,0}\)因为最后一行对下一行不能造成影响. 然而,这样只有60分. 100分是个矩阵快速幂, B矩阵构造很简单,当两个状态\(s.s'\)可以转移,那么,B矩阵\(g_{s,s'}=1\). 当i等于零时, A矩阵为{1, 0 \(<\)repeats 15…