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 ...
随机推荐
- Windows中利用共享内存来实现不同进程间的通信
Windows中利用共享内存来实现不同进程间的通信 一.msdn详细介绍 https://docs.microsoft.com/zh-cn/windows/win32/memory/sharing-f ...
- 旧瓶新酒-获取网络资源即爬取下载页面内容(图片、html、css、js等)
这个java获取网络资源以前也写过不少 最近用到又重新写了一个,apache.commons.io中的例子就非常好,但是无法对请求进行详细设置 于是大部分照搬,局部替换以设置请求头 如需更加复杂的设置 ...
- 02-21 决策树ID3算法
目录 决策树ID3算法 一.决策树ID3算法学习目标 二.决策树引入 三.决策树ID3算法详解 3.1 if-else和决策树 3.2 信息增益 四.决策树ID3算法流程 4.1 输入 4.2 输出 ...
- 编程杂谈——std::vector与List<T>的性能比较
昨天在比较完C++中std::vector的两个方法的性能差异并留下记录后--编程杂谈--使用emplace_back取代push_back,今日尝试在C#中测试对应功能的性能. C#中对应std:: ...
- Thymeleaf模板引擎的使用
Thymeleaf模板引擎的使用 1.模板引擎 JSP.Velocity.Freemarker.Thymeleaf 2.springboot推荐使用Thymeleaf模板引擎 特点:语法更简单,功能更 ...
- 告诉你如何回答"线上CPU100%排查"面试问题
不知道在大家面试中,有没有遇到这个问题: 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答!高调版对不起,我是做研发的,这个问题在生产 ...
- web安全之点击劫持
点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两种方式, 一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明 ...
- opencv实践::切边
问题描述 真实案例,扫描仪扫描到的法律文件,需要切边,去掉边 缘空白,这样看上去才真实. #include <opencv2/opencv.hpp> #include <iostre ...
- Django之视图层的简介与使用
Django的View(视图) 一个视图函数(可以是类),简称视图,是一个简单的Python 函数(可以是类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个 ...
- 图像配准SIFT
(一)图像特征匹配--SIFT 1.1 SIFT背景简介 SIFT算法是David Lowe在1999年提出的局部特征描述子,并在2004年深入发展和完善. SIFT算法是在尺度空间进行特征检测并确定 ...