2021.8.21考试总结[NOIP模拟45]
T1 打表

由归纳法可以发现其实就是所有情况的总和。
$\frac{\sum_{j=1}^{1<<k}(v_j-v_{ans})}{2^k}$
$code:$

1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long LL;
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=='-') f=-1; ch=getchar(); }
9 while(ch>='0'&&ch<='9'){ x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
10 return x*f;
11 }
12 inline void write(int x,char sp){
13 char ch[20]; int len=0;
14 if(x<0){ putchar('-'); x=~x+1; }
15 do{ ch[len++]=x%10+(1<<5)+(1<<4); x/=10; }while(x);
16 for(int i=len-1;~i;i--) putchar(ch[i]); putchar(sp);
17 }
18 } using namespace IO;
19
20 const int NN=1<<18,p=1e9+7,inv=5e8+4;
21 LL k,ans,res,U,v[NN];
22
23 signed main(){
24 k=read(); ans=read(); U=(1<<k)-1;
25 for(int i=0;i<=U;i++) v[i]=read();
26 for(int i=0;i<=U;i++) (res+=abs(v[i]-v[ans]))%=p;
27 for(int i=1;i<=k;i++) (res*=inv)%=p;
28 write(res,'\n');
29 return 0;
30 }
T1
T2 蛇
哥吾
T3 购物
每个加和的贡献为$[\left \lceil \frac{a}{2} \right \rceil,a]$。
发现对$a$排序后$a_{i-1}<a_i$,$\frac{a_{i-1}+a_i}{2} \leq a_i$。
因此排序后前缀和找断点即可。
$code:$

1 #include<bits/stdc++.h>
2 #define int long long
3 #define rin register signed
4 using namespace std;
5
6 namespace IO{
7 inline int read(){
8 int x=0,f=1; char ch=getchar();
9 while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); }
10 while(ch>='0'&&ch<='9'){ x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
11 return x*f;
12 }
13 inline void write(int x,char sp){
14 char ch[20]; int len=0;
15 if(x<0){ putchar('-'); x=~x+1; }
16 do{ ch[len++]=x%10+(1<<5)+(1<<4); x/=10; }while(x);
17 for(rin i=len-1;~i;i--) putchar(ch[i]); putchar(sp);
18 }
19 } using namespace IO;
20
21 const int NN=1e5+5;
22 int n,a[NN],pre[NN],ans;
23
24 signed main(){
25 n=read();
26 for(rin i=1;i<=n;i++) ans+=a[i]=read();
27 sort(a+1,a+n+1);
28 for(rin i=1;i<=n;i++){
29 int tmp=a[i]+1>>1;
30 if(tmp>a[i-1]) ans-=tmp-a[i-1]-1;
31 a[i]+=a[i-1];
32 }
33 write(ans,'\n');
34 return 0;
35 }
T3
T4 ants
可以对开线段树,把区间内有的数赋为$0$,其余赋为$1$,问题转化为求最长连续$0$。加上莫队能拿$50$。
考虑把线段树的$log$去掉。其实只要记每个数值左右有几个连续的数即可,但删除不好操作,因此回滚莫队。
$code:$

1 #include<bits/stdc++.h>
2 using namespace std;
3
4 namespace IO{
5 inline int read(){
6 int x=0,f=1; char ch=getchar();
7 while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); }
8 while(ch>='0'&&ch<='9'){ x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
9 return x*f;
10 }
11 inline void write(int x,char sp){
12 char ch[20]; int len=0;
13 if(x<0){ putchar('-'); x=~x+1; }
14 do{ ch[len++]=x%10+(1<<5)+(1<<4); x/=10; }while(x);
15 for(int i=len-1;~i;i--) putchar(ch[i]); putchar(sp);
16 }
17 } using namespace IO;
18
19 const int NN=1e5+5;
20 int n,m,a[NN],bel[NN],ans[NN],lb[NN],rb[NN],len;
21 struct ask{ int l,r,id; }q[NN];
22 struct node{ int typ,pos,val; }stk[NN];
23 inline bool cmp(ask x,ask y){ return bel[x.l]==bel[y.l]?x.r<y.r:bel[x.l]<bel[y.l]; }
24
25 signed main(){
26 n=read(); m=read(); len=sqrt(n);
27 for(int i=1;i<=n;i++) a[i]=read(), bel[i]=i/len+1;
28 for(int i=1;i<=m;i++)
29 q[i].l=read(), q[i].r=read(), q[i].id=i;
30 sort(q+1,q+m+1,cmp);
31 for(int i=1,j=1;j<=bel[n];j++){
32 int r=j*len,sum=0;
33 for(int k=1;k<=n;k++) lb[k]=rb[k]=0;
34 for(;bel[q[i].l]==j;i++){
35 while(r<q[i].r){
36 r++;
37 lb[a[r]]=lb[a[r]-1]+1;
38 rb[a[r]]=rb[a[r]+1]+1;
39 int tmp=lb[a[r]]+rb[a[r]]-1;
40 sum=max(sum,tmp);
41 lb[a[r]+rb[a[r]]-1]=tmp;
42 rb[a[r]-lb[a[r]]+1]=tmp;
43 }
44 int res=sum,top=0;
45 for(int l=q[i].l;l<=min(q[i].r,len*bel[q[i].l]);l++){
46 lb[a[l]]=lb[a[l]-1]+1;
47 rb[a[l]]=rb[a[l]+1]+1;
48 stk[++top]=(node){0,a[l]+rb[a[l]]-1,lb[a[l]+rb[a[l]]-1]};
49 stk[++top]=(node){1,a[l]-lb[a[l]]+1,rb[a[l]-lb[a[l]]+1]};
50 int tmp=lb[a[l]]+rb[a[l]]-1;
51 res=max(res,tmp);
52 lb[a[l]+rb[a[l]]-1]=tmp;
53 rb[a[l]-lb[a[l]]+1]=tmp;
54 }
55 ans[q[i].id]=res;
56 while(top){
57 if(!stk[top].typ) lb[stk[top].pos]=stk[top].val;
58 else rb[stk[top].pos]=stk[top].val;
59 top--;
60 }
61 for(int l=q[i].l;l<=min(q[i].r,len*bel[q[i].l]);l++)
62 lb[a[l]]=rb[a[l]]=0;
63 }
64 }
65 for(int i=1;i<=m;i++) write(ans[i],'\n');
66 return 0;
67 }
T4
2021.8.21考试总结[NOIP模拟45]的更多相关文章
- 2021.7.21考试总结[NOIP模拟22]
终于碾压小熠了乐死了 T1 d 小贪心一波直接出正解,没啥好说的(bushi 好像可以主席树暴力找,但我怎么可能会呢?好像可以堆优化简单找,但我怎么可能想得到呢? 那怎么办?昨天两道单调指针加桶,我直 ...
- 2021.9.21考试总结[NOIP模拟58]
T1 lesson5! 开始以为是个无向图,直接不懂,跳去T2了. 之后有看了一眼发现可暴力,于是有了\(80pts\). 发现这个图是有拓扑序的,于是可以用拓扑排序找最长路径.先找原图内在最长路径上 ...
- 2021.9.17考试总结[NOIP模拟55]
有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a ...
- 2021.9.13考试总结[NOIP模拟52]
T1 路径 考虑每一位的贡献,第$i$位每$2^i$个数会变一次,那么答案为$\sum_{i=1}^{log_2n} \frac{n}{2^i}$. $code:$ 1 #include<bit ...
- 2021.8.11考试总结[NOIP模拟36]
T1 Dove玩扑克 考场并查集加树状数组加桶期望$65pts$实际$80pts$,考后多开个数组记哪些数出现过,只扫出现过的数就切了.用$set$维护可以把被删没的数去掉,更快. $code:$ 1 ...
- 2021.7.29考试总结[NOIP模拟27]
T1 牛半仙的妹子图 做法挺多的,可以最小生成树或者最短路,复杂度O(cq),c是颜色数. 我考场上想到了原来做过的一道题影子,就用了并查集,把边权排序后一个个插入,记录权值的前缀和,复杂度mlogm ...
- 2021.7.15考试总结[NOIP模拟16]
ZJ模拟D2就是NB.. T1 Star Way To Heaven 谁能想到这竟是个最小生成树呢?(T1挂分100的高人JYF就在我身边 把上边界和下边界看成一个点和星星跑最小生成树,从上边界开始跑 ...
- 2021.9.14考试总结[NOIP模拟53]
T1 ZYB和售货机 容易发现把每个物品都买成$1$是没有影响的. 然后考虑最后一个物品的方案,如果从$f_i$向$i$连边,发现每个点有一个出度多个入度,可以先默认每个物品都能买且最大获利,这样可以 ...
- 2021.9.12考试总结[NOIP模拟51]
T1 茅山道术 仔细观察发现对于每个点只考虑它前面第一个与它颜色相同的点即可. 又仔细观察发现对一段区间染色后以这个区间内点为端点的区间不能染色. 于是对区间右端点而言,区间染色的贡献为遍历到区间左端 ...
随机推荐
- find用法 以及和exec xargs 的组合使用
1.查找当前目录下所有的txt的文件 [root@master1 ~]# find . -name "*.txt" -type f ./a.txt ./b.txt 2.exec 结 ...
- axios 取消请求 (如:用户登录失效,阻止其他请求)
const CancelToken = axios.CancelToken; const source = CancelToken.source(); axios.interceptors.reque ...
- 双非Java的学习之旅以及秋招路程
个人信息: 趁着中秋写个帖子记录一下吧.渣渣本,无实习,无高质量证书,走了很多弯路,最后选择的Java后端.现在算是半躺平了,接了几个中小厂的offer保底,20w多的薪资,后面还有几家公司接着面.不 ...
- scrum项目冲刺_day06总结
摘要:今日完成任务. 1.服务器部署完成 2.由于将数据库放到了服务器上,搜索功能需要修改 总任务: 一.appUI页面(已完成) 二.首页功能: 1.图像识别功能(已完成) 2.语音识别功能(已完成 ...
- 关于PHP的方法参数类型约束
在之前的文章PHP方法参数的那点事儿中,我们讲过关于PHP方法参数的一些小技巧.今天,我们带来的是更加深入的研究一下PHP中方法的参数类型. 在PHP5之后,PHP正式引入了方法参数类型约束.也就是如 ...
- webpack 安装与卸载
全局安装(不推荐): npm install webpack webpack-cli -g 安装好后打印版本: webpack -v webpack-cli -v 卸载全局 npm uninstall ...
- Java学习之随堂笔记系列——day02
昨天内容回顾1.安装jdk和配置环境变量 配置JAVA_HOME和path,只要配置成功之后就可以直接使用java和javac命令.2.HelloWorld案例3.java的基础语法 注释:给程序的解 ...
- 疏忽Bug
仅供自己留存备份 错误: vector不是模板 解决: 头文件未包含 头文件: #include <vector> using namespace std; 错误: 多字节字符 ...
- Jmeter压测学习1—第一个项目:登录
我用的是我们公司的测试环境练习的 网址:http://****:9000/login.html 账号是admin 密码:123456 一.打开Jmeter 找到安装目录:bin->Jmeter ...
- ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...