两个机房又和在一起考试

开场看了看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的更多相关文章

  1. noip模拟27[妹子图·腿·腰](fengwu半仙的妹子们)

    \(noip模拟27\;solutions\) 这次吧,我本来以为我能切掉两个题,结果呢??只切掉了一个 不过,隔壁Varuxn也以为能切两个,可惜了,他一个都没切...... 确实他分比我高一点,但 ...

  2. 2021.7.29考试总结[NOIP模拟27]

    T1 牛半仙的妹子图 做法挺多的,可以最小生成树或者最短路,复杂度O(cq),c是颜色数. 我考场上想到了原来做过的一道题影子,就用了并查集,把边权排序后一个个插入,记录权值的前缀和,复杂度mlogm ...

  3. 20190820 Tue 集训总结&NOIP模拟 27

    低谷度过了? 但是skyh阿卡了,还是反衬出我的辣鸡. T1知道要sort,却忘了判重,正解不如暴力分高,555. T2成功化出正解柿子,然后化过头了,化出了无法DP的柿子. 果然不够强,大神们一眼就 ...

  4. NOIP模拟27(命悬一线)

    考得太悬了!

  5. 7.29考试总结(NOIP模拟27)[牛半仙的妹子图·Tree·序列]

    前言 从思路上来讲是比较成功的,从分数上就比较令人失望了. 考场上是想到了前两个题的正解思路,其实最后一个题是半个原题,只可惜是我看不懂题... 这波呀,这波又是 语文素养限制OI水平.. 改题的时候 ...

  6. NOIP 模拟 $27\; \rm 牛半仙的妹子序列$

    题解 \(by\;zj\varphi\) 明显一道极长上升子序列的题. 直接线段树维护单调栈,最后单调栈求出可以贡献的序列,答案相加就行. Code #include<bits/stdc++.h ...

  7. NOIP 模拟 $27\; \rm 牛半仙的妹子Tree$

    题解 \(by\;zj\varphi\) 很妙的虚树题. 考虑若没有操作 \(2\),那么直接记录一下扩散到它的最短时间和询问时间相比即可,可以当作一个树上最短路. 有 \(2\) 操作怎么办,将操作 ...

  8. NOIP 模拟 $27\; \rm 牛半仙的妹子图$

    题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...

  9. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

随机推荐

  1. Open Source v.s. Open Core

    摘要 本文翻译自 CMSWire 网站的<Open Source vs. Open Core: What's the Difference?>,主要介绍 Open Source 和 Ope ...

  2. Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

    最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...

  3. e课表项目第二次冲刺周期第二天

    昨天干了什么? 昨天与我们小组的成员商量了一个重大的决定,确定了我们转型发展的主题,简要的设计了我们软件要实现的功能,并且完成了首导航栏的设计,和一部分框架的内容填充. 今天干了什么? 我们组今天通过 ...

  4. EF通过导航属性取出从表的集合后,无法删除子表

    主从表是配了级联删除的,如果通过导航属性去除从表明细删除时将报错The relationship could not be changed because one or more of the for ...

  5. msf假冒令牌

    记录下 msf中令牌假冒的过程 环境 kai Linux 靶机 xp meterpreter得到一个返回的shell,test用户,假设无法提升至管理权限. 使用use incognito命令进入该模 ...

  6. 爬虫3:html页面+webdriver模块+demo

    保密性好的网站,不能使用request请求页面信息,这样可以使用webdriver模块先开启一个浏览器,然后爬去信息,甚至还可以click等操作对页面操作,再爬取. demo 一般流程: 1)包含se ...

  7. 告别硬编码,mysql 如何实现按某字段的不同取值进行统计

    上周我突然意识到,我在grafana上写的 sql 语句存在多处硬编码.这篇笔记将记录如何实现没有硬编码的sql语句,以及自学编程过程中如何应对自己的笨拙代码和难题不断的状况. 1.有效但粗笨的硬编码 ...

  8. 20.discuz论坛-实现伪静态

    部署discuz论坛 1.直接上配置文件--->>> [root@web01 conf.d]# vim discuz.cheng.com.conf server { listen 8 ...

  9. springMVC初学简单例子

    新建web项目,保留web.xml. 配置web.xml文件(/WEB-INF/下): <?xml version="1.0" encoding="UTF-8&qu ...

  10. LeetCode初级算法--设计问题02:最小栈

    LeetCode初级算法--设计问题02:最小栈 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...