2021.8.24考试总结[NOIP47]】的更多相关文章

T1 prime 发现只需筛小于等于$mid(\sqrt r,k)$的质数,之后用这些质数筛掉区间内不合法的数即可. $code:$ 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 5 namespace IO{ 6 inline int read(){ 7 int x=0,f=1; char ch=getchar(); 8 while(ch<'0'||ch>'9'){ if(ch…
带着爆0的心态考的试,没想到整了个假rk2 (炸鱼大佬wtz忒强了OTZ T1 景区路线规划 这题对刚学完概率期望的我来说简直水爆了好吗.. 因为存在时间限制,不好跑高斯消元,就直接跑dp就完了. 令i为当前所在景点,j为已过时间, f[i][j]=∑f[u][j-t[k]-c[i]]/out,(u与i联通,k为u,i,之间边的编号) 因为每次在合法的景点中做选择,所以out并不是u的出度,而是u可选的合法景点,每次要遍历一遍求得. code: 1 #include<bits/stdc++.h>…
2021.04.24[NOIP提高B组]模拟 总结 T1 题意:有一圈数.两两之间有加法或乘法操作, 问你开始断掉那条边使得剩下的序列经过某种操作后的值最大 看上去是个区间 dp .然后直接断环成列,找最大值. 光荣 WA 原因:负负得正,最小的两个负数相乘可能比最大的要大 所以多维护一个最小值,乘法的时候多考虑几种情况即可 #include<bits/stdc++.h> using namespace std; const int N=105; int n,m,x[N],f[N][N],g[…
有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a_i-\frac{(j-i)\times (j-i-1)}{2}]$ 设$j<k$,对$i$来说,$k$优于$j$,当且仅当$2\times i>\frac{2\times(f_j-f_k)+k^2+k-j^2-j}{k-j}$ 斜率优化,$CDQ$分治,先按$a$排序,分治中按$id$排序满足限…
T1 景区路线规划(期望dp/记忆化搜索) 一看题目发现肯定是概率期望题,再仔细想想这三天做的题,就知道是个期望dp. 考试思路(错): 因为聪聪与可可的10分打法根深蒂固,导致在考试时想到了用深搜(就不知道当时为什么没想到用那个题的正解思路.....) 深搜其实打的也挺对的,应该是能拿到55分(因为没用记忆化和数组记录更新状态),可是还犯了一个致命错误: 出度没有找对!! 看题:每玩完一个项目后,小y和妹子会等概率的随机选择一个可以从当前项目直达的且来得及玩的项目作为下一个项目. 意思就是每次…
题目传送门 题目大意 见题面. 思路 本来以为zcx.pxj变强了,后来发现是SPJ出问题了...考试的时候感觉有点人均啊...结果自己还是只想出来一半. 我们假设 \(f(x)=(\lfloor\frac{2x}{2^n}\rfloor+2x)\pmod{2^n}\),那么我们可以看出 \(f(x)\) 实际上就是 \(x\) 把第一位提到最后一位,那么我们就可以想到 \(f(a\otimes b)=f(a)\otimes f(b)\)(虽然我考试的时候就是这里没有想到). 考虑原问题,我们不…
T1 洛希极限 不难发现每个点肯定是被它上一行或上一列的点转移.可以预处理出每个点上一行,上一列最远的能转移到它的点,然后单调队列优化. 预处理稍显ex.可以用并查集维护一个链表,记录当前点之后第一个没有被预处理的点的位置,这样就保证了每个点只会被更新一次. 同时正因为只被更新一次,所以行列的预处理都应先排序. 单调队列可以手写结构体,维护方案数比较方便. \(code:\) T1 #include<bits/stdc++.h> using namespace std; #define int…
信心赛,但炸了.T3SB错直接炸飞,T4可以硬算的组合数非要分段打表求阶乘..T2也因为一个细节浪费了大量时间.. 会做难题很好,但首先还是要先把能拿的分都拿到. T1 签到题 结论:总可以做到对每个点连的边平均分配颜色.感性理解貌似不难,据题解说可以网络流证明. 总之很玄. UPD:证明好像能用\(vizing\)定理? 放两个链接 oiwiki %赵sir \(code:\) T1 #include<bits/stdc++.h> using namespace std; namespace…
T1 ZYB和售货机 容易发现把每个物品都买成$1$是没有影响的. 然后考虑最后一个物品的方案,如果从$f_i$向$i$连边,发现每个点有一个出度多个入度,可以先默认每个物品都能买且最大获利,这样可以建出每个点出度入度都是$1$的图. 把所有边都连上是一个基环树,所以建出的若干个联通图中只有一个环.而我们要做的工作就是用最小代价把这个环断掉,形成的树上所有边都可以对答案贡献. 记每个物品的最大获利和次大获利,在图上$DFS$,每到一个点先加上最大获利,记录路径上最大获利与次大获利差的最小值,如果…
T1 路径 考虑每一位的贡献,第$i$位每$2^i$个数会变一次,那么答案为$\sum_{i=1}^{log_2n} \frac{n}{2^i}$. $code:$ 1 #include<bits/stdc++.h> 2 #define int unsigned long long 3 using namespace std; 4 5 namespace IO{ 6 inline int read(){ 7 char ch=getchar(); int x=0,f=1; 8 while(ch&…