两个机房又和在一起考试

开场看了看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.

  把式子化简了,考虑每个点的贡献就没了。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int f[][][],t;
  4. int n,m,a[][],ans;
  5. int main(){
  6. scanf("%d",&t);
  7. while(t--){
  8. ans=0x7fffffff;
  9. memset(f,0x3f,sizeof(f));
  10. scanf("%d%d",&n,&m);
  11. for(int i=;i<=n;i++)
  12. for(int j=;j<=m;j++)
  13. scanf("%d",&a[i][j]);
  14. f[][][a[][]]=(n+m-)*a[][]*a[][];
  15. for(int i=;i<=n;i++)
  16. for(int j=;j<=m;j++){
  17. if(i==&&j==)continue;
  18. for(int k=;k<=(i+j)*;k++){
  19. int sum=(n+m-)*a[i][j]*a[i][j]-k*a[i][j]*;
  20. int mi=min(f[i-][j][k],f[i][j-][k]);
  21. if(mi==0x3f3f3f3f)continue;
  22. mi+=sum;
  23. f[i][j][k+a[i][j]]=min(f[i][j][k+a[i][j]],mi);
  24. if(i==n&&j==m)ans=min(ans,f[i][j][k+a[i][j]]);
  25. }
  26. }
  27. printf("%d\n",ans);
  28. }
  29. return ;
  30. }

T3.

  换根dp,考虑每个数二进制最后4位,统计答案即可。

  注意m!=0时不能算自己到自己的贡献。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,m,fi[],ne[],to[],ans,dis[],w[],tot;
  4. int res[],sum[][],siz[],ss[][];
  5. inline void add(int x,int y,int z){
  6. ne[++tot]=fi[x];
  7. fi[x]=tot;
  8. to[tot]=y;
  9. w[tot]=z;
  10. }
  11. void dfs(int x,int fa){
  12. siz[x]=;ss[x][]=;
  13. for(int i=fi[x];i;i=ne[i]){
  14. int y=to[i];
  15. if(y!=fa){
  16. dis[y]=dis[x]+w[i];
  17. ans+=dis[y]^m;
  18. res[]+=dis[y];
  19. dfs(y,x);
  20. siz[x]+=siz[y];
  21. for(int j=;j<=;j++)
  22. ss[x][(j+w[i])&]+=ss[y][j];
  23. }
  24. }
  25. }
  26. void dfs2(int x,int fa){
  27. for(int i=fi[x];i;i=ne[i]){
  28. int y=to[i];
  29. if(y!=fa){
  30. res[y]=res[x]+(n-*siz[y])*w[i];
  31. for(int j=;j<=;j++){
  32. sum[y][(j+w[i])&]+=sum[x][j]-ss[y][(j-(w[i]&)+)&];
  33. sum[y][j]+=ss[y][j];
  34. }
  35. dfs2(y,x);
  36. }
  37. }
  38. }
  39. int main(){
  40. scanf("%d%d",&n,&m);
  41. for(int i=,x,y,z;i<n;i++)
  42. scanf("%d%d%d",&x,&y,&z),add(x,y,z),add(y,x,z);
  43. dfs(,);
  44. printf("%d\n",ans);
  45. for(int i=;i<=;i++)
  46. sum[][i]=ss[][i];
  47. dfs2(,);
  48. for(int i=;i<=n;i++){
  49. sum[i][]--;
  50. for(int j=;j<=;j++)
  51. res[i]=res[i]-j*sum[i][j]+(m^j)*sum[i][j];
  52. printf("%d\n",res[i]);
  53. }
  54. return ;
  55. }

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. 使用 Jenkins 与 Sonar 集成对代码进行持续检测

    SonarQube 与 Jenkins 简介 SonarQube是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题.同时,它提供了丰富的插件,支持多种语言的检测 ...

  2. java中的String是不可变类

    String s = "hello "; s += "world"; 这两行代码执行后,原始的String对象中的内容没有变 在这段代码中,s原先指向一个Str ...

  3. springboot+thymeleaf国际化方法一:LocaleResolver

    springboot中大部分有默认配置所以开发起项目来非常迅速,仅对需求项做单独配置覆盖即可 spring采用的默认区域解析器是AcceptHeaderLocaleResolver,根据request ...

  4. mongodb完整安装

    在线下载安装依赖包 yum -y install gcc gcc-c++ yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison yu ...

  5. 局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术

    一. 前言     最近在工作中需要对海量数据进行相似性查找,即对微博全量用户进行关注相似度计算,计算得到每个用户关注相似度最高的TOP-N个用户,首先想到的是利用简单的协同过滤,先定义相似性度量(c ...

  6. 2018 php 面试

    排序算法 快速排序 快速排序是十分常用的高效率的算法,其思想是:先选一个标尺,用它把整个队列过一遍筛选,以保证左边的元素都不大于它,其右边都不小于它 function quickSort($arr){ ...

  7. 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门

    在开始之前,首先要说明的是串口通信所用到的 SerialPort 类并不包含在 System.Device.Gpio NuGet 包中,而是在 System.IO.Ports NuGet 包中.之所以 ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. Shiro权限管理框架(四):深入分析Shiro中的Session管理

    其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻.最后 ...

  10. 算法随笔-二叉树遍历的N种姿势

    最近在练习用Python刷算法,leetcode上刷了快300题.一开始怀疑自己根本不会写代码,现在觉得会写一点点了,痛苦又充实的刷题历程.对我这种半路出家的人而言,收获真的很大. 今天就从二叉树遍历 ...