NOIP模拟27
两个机房又和在一起考试
开场看了看T1,感觉挺水的,过。
T2,这个式子有点奇怪,暂时没什么思路,过
T3,好像保留最后几位换个根处理一下就行了,过,先去打T1
于是T1大概打了0.5h,连暴力带正解带对拍,码完之后感觉挺稳的,就过了。去看T3。
T3换个根就没事了,但是我一开始状态设置的有问题,一拍就爆炸了。
调调调,调过了T3,拍上了,感觉很稳,就交了一下T3和T1,此时过了两个小时
去把T2的式子化简了一下,发现只与前面所有数的和有关,好像是个很简单的dp,就码出来了。
不太会打暴力,于是码了个dfs,拍上了,很稳。
然后我去上了个厕所
然后碰见了DeepinC
然后他问我:“你切了几个?”
然后我感觉不太对劲,他都用“切”了,说明。。。。。。他AK了?
然后我决定回答:3个(这句话目的在于给DeepinC压力,使他不会过早颓废)
出分了,T2T3都A了,T1爆炸了
T1.
注意这题不保证b是有序的,需要自己手动sort,不这么干会变成20分,别问我怎么知道的。
然而我打对拍时智障地认为输入保证有序,于是我将所有数生成了出来,然后sort了一遍,然后输出
然后错失了人生第一个AK
T2.
把式子化简了,考虑每个点的贡献就没了。
#include<bits/stdc++.h>
using namespace std;
int f[][][],t;
int n,m,a[][],ans;
int main(){
scanf("%d",&t);
while(t--){
ans=0x7fffffff;
memset(f,0x3f,sizeof(f));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&a[i][j]);
f[][][a[][]]=(n+m-)*a[][]*a[][];
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
if(i==&&j==)continue;
for(int k=;k<=(i+j)*;k++){
int sum=(n+m-)*a[i][j]*a[i][j]-k*a[i][j]*;
int mi=min(f[i-][j][k],f[i][j-][k]);
if(mi==0x3f3f3f3f)continue;
mi+=sum;
f[i][j][k+a[i][j]]=min(f[i][j][k+a[i][j]],mi);
if(i==n&&j==m)ans=min(ans,f[i][j][k+a[i][j]]);
}
}
printf("%d\n",ans);
}
return ;
}
T3.
换根dp,考虑每个数二进制最后4位,统计答案即可。
注意m!=0时不能算自己到自己的贡献。
#include<bits/stdc++.h>
using namespace std;
int n,m,fi[],ne[],to[],ans,dis[],w[],tot;
int res[],sum[][],siz[],ss[][];
inline void add(int x,int y,int z){
ne[++tot]=fi[x];
fi[x]=tot;
to[tot]=y;
w[tot]=z;
}
void dfs(int x,int fa){
siz[x]=;ss[x][]=;
for(int i=fi[x];i;i=ne[i]){
int y=to[i];
if(y!=fa){
dis[y]=dis[x]+w[i];
ans+=dis[y]^m;
res[]+=dis[y];
dfs(y,x);
siz[x]+=siz[y];
for(int j=;j<=;j++)
ss[x][(j+w[i])&]+=ss[y][j];
}
}
}
void dfs2(int x,int fa){
for(int i=fi[x];i;i=ne[i]){
int y=to[i];
if(y!=fa){
res[y]=res[x]+(n-*siz[y])*w[i];
for(int j=;j<=;j++){
sum[y][(j+w[i])&]+=sum[x][j]-ss[y][(j-(w[i]&)+)&];
sum[y][j]+=ss[y][j];
}
dfs2(y,x);
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=,x,y,z;i<n;i++)
scanf("%d%d%d",&x,&y,&z),add(x,y,z),add(y,x,z);
dfs(,);
printf("%d\n",ans);
for(int i=;i<=;i++)
sum[][i]=ss[][i];
dfs2(,);
for(int i=;i<=n;i++){
sum[i][]--;
for(int j=;j<=;j++)
res[i]=res[i]-j*sum[i][j]+(m^j)*sum[i][j];
printf("%d\n",res[i]);
}
return ;
}
NOIP模拟27的更多相关文章
- noip模拟27[妹子图·腿·腰](fengwu半仙的妹子们)
\(noip模拟27\;solutions\) 这次吧,我本来以为我能切掉两个题,结果呢??只切掉了一个 不过,隔壁Varuxn也以为能切两个,可惜了,他一个都没切...... 确实他分比我高一点,但 ...
- 2021.7.29考试总结[NOIP模拟27]
T1 牛半仙的妹子图 做法挺多的,可以最小生成树或者最短路,复杂度O(cq),c是颜色数. 我考场上想到了原来做过的一道题影子,就用了并查集,把边权排序后一个个插入,记录权值的前缀和,复杂度mlogm ...
- 20190820 Tue 集训总结&NOIP模拟 27
低谷度过了? 但是skyh阿卡了,还是反衬出我的辣鸡. T1知道要sort,却忘了判重,正解不如暴力分高,555. T2成功化出正解柿子,然后化过头了,化出了无法DP的柿子. 果然不够强,大神们一眼就 ...
- NOIP模拟27(命悬一线)
考得太悬了!
- 7.29考试总结(NOIP模拟27)[牛半仙的妹子图·Tree·序列]
前言 从思路上来讲是比较成功的,从分数上就比较令人失望了. 考场上是想到了前两个题的正解思路,其实最后一个题是半个原题,只可惜是我看不懂题... 这波呀,这波又是 语文素养限制OI水平.. 改题的时候 ...
- NOIP 模拟 $27\; \rm 牛半仙的妹子序列$
题解 \(by\;zj\varphi\) 明显一道极长上升子序列的题. 直接线段树维护单调栈,最后单调栈求出可以贡献的序列,答案相加就行. Code #include<bits/stdc++.h ...
- NOIP 模拟 $27\; \rm 牛半仙的妹子Tree$
题解 \(by\;zj\varphi\) 很妙的虚树题. 考虑若没有操作 \(2\),那么直接记录一下扩散到它的最短时间和询问时间相比即可,可以当作一个树上最短路. 有 \(2\) 操作怎么办,将操作 ...
- NOIP 模拟 $27\; \rm 牛半仙的妹子图$
题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
随机推荐
- MongoDB 学习笔记之 Aggregation Pipeline
Aggregation Pipeline: 常用操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量 $skip: ...
- SQL Server 2012企业版和标准版的区别
关于使用Microsoft SQL Server 数据库的公司一般会有疑问,企业版数据库和标准版数据库的区别在哪?如果采购企业版的价格和标准版的价格相差很大,从多方资料查询发现,我认为最主要的区别是硬 ...
- SEER见证人操作指南
SEER的见证人设计 共识方式 在区块生产者的产生方式上,SEER采取了PoS的共识方式,用户通过智能合约抵押自己持有的SEER竞选主力见证人(区块生产者). 对于SEER区块链来说,制约区块链TPS ...
- 2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?
看完这个实现之后,感觉还是要多看源码,多研究.其实JRaft的定时任务调度器是基于Netty的时间轮来做的,如果没有看过Netty的源码,很可能并不知道时间轮算法,也就很难想到要去使用这么优秀的定时调 ...
- java零碎知识(每种数据类型默认值,多大,取值范围)
只要记下字节就好了 其它不必死记,取值范围:没有正负的,2的 字节数*8次方-1 , 凡是有正负的2的 (字节数*8)-1次方 -1 比如: 1.byte(有正负):先计算是2的几次方:字节数1*( ...
- Mysql多数据库备份
备份数据脚本 #!/bin/bash # date是linux的一个命令 date [参数] [+格式] time=` date +%Y_%m_%d_%H_%M_%S ` # 备份输出路径 backu ...
- CSP2019 考前复习
动态规划 [NOIP2016]愤怒的小鸟(状压+思维) 多组数据题 共有i只猪,给出每只猪的坐标,鸟的飞行轨迹为经过原点的抛物线,求最少要多少只鸟能消灭所有的猪 \[ 猪数量n<=18 \] 看 ...
- 爬虫4:pdf页面+pdfminer模块+demo
本文介绍下pdf页面的爬取,需要借助pdfminer模块 demo一般流程: 1)设置url url = 'http://www.------' + '.PDF' 2)requests模块获取url ...
- C# 控件 RichTextBox 显示行号,并且与Panel相互联动
我们在使用到WINFORM窗体工作中,要求RichTextBox 加入行号: 之前有看到大牛们写的,但是太复杂繁多,而且有用双TextBox进行联动,非常不错,今天我们尝试RichTextBox +P ...
- Vue全局组件注册
通过Vue.component(‘组件名’, {配置对象})注册全局组件 在main.js中注册全局组件 test import Vue from 'vue' import App from './A ...