试题编号: 201909-5
试题名称: 城市规划
时间限制: 3.0s
内存限制: 512.0MB
问题描述:

几乎是Gym102222G的原版,详解见上一篇博文

  1. /*
  2. 贡献+树形dp+01背包
  3. */
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. const int N=1e5+;
  7. const int M=N<<;
  8. const int Kn=;
  9. typedef long long ll;
  10. int n,m,k;
  11. int tot,to[M],nxt[M],head[N],ind[N],siz[N];ll val[M];bool vis[N];
  12. ll f[N][Kn];
  13. inline void add(int x,int y,ll z){
  14. ind[x]++;to[++tot]=y;val[tot]=z;nxt[tot]=head[x];head[x]=tot;
  15. }
  16. void dfs(int u,int fa){
  17. for(int l=head[u];l;l=nxt[l]){
  18. int v=to[l];ll w=val[l];
  19. if(v==fa) continue;
  20. dfs(v,u);
  21. siz[u]+=siz[v];
  22. for(int i=min(siz[u],k);i;i--){//逆序,背包问题, siz[u]个,每个都是选或者不选
  23. for(int j=min(siz[v],i);j;j--){
  24. f[u][i]=min(f[u][i],f[u][i-j]+f[v][j]+w*(k-j)*j);
  25. }
  26. }
  27.  
  28. }
  29. };
  30. void init_dp(){
  31. for(int i=;i<=n;i++){
  32. f[i][]=;
  33. for(int j=;j<=m;j++) f[i][j]=1e17;
  34. if(vis[i]) siz[i]=,f[i][]=;
  35. }
  36. }
  37. int main(){
  38. scanf("%d%d%d",&n,&m,&k);
  39. for(int i=,x;i<=m;i++) scanf("%d",&x),vis[x]=;
  40. for(int i=,x,y,z;i<n;i++){
  41. scanf("%d%d%d",&x,&y,&z);
  42. add(x,y,z);
  43. add(y,x,z);
  44. }
  45. int rt=;
  46. for(int i=;i<=n;i++) if(ind[i]>){rt=i;break;}
  47. init_dp();
  48. dfs(rt,0);
  49. printf("%lld\n",f[rt][k]);
  50. return ;
  51. }

CCF 201909-5 城市规划的更多相关文章

  1. CCF模拟题-201909

    2.小明种苹果(续)(100分) #include<iostream> #include<cstdio> #include<cstring> #define max ...

  2. CCF考试

    第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...

  3. 浅谈城市规划在移动GIS方面的应用发展

    1.概述 城市建设进程加快,城市规划管理工作日趋繁重,各种来源的数据产生各种层出不穷的问题,严重影响城市规划时的准确性,为此全面合理的掌握好各方面的城市规划资料才能做出更加科学的决策.移动端的兴起为规 ...

  4. 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)

    1952: [Sdoi2010]城市规划 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 73  Solved: 23[Submit][Status][ ...

  5. CCF关于NOIP2014复赛报名的通知

    CCF关于NOIP2014复赛报名的通知   CCF NOIP2014复赛全部实行网上注册.报名.未通过网上报名的选手将不具备参赛和申诉资格. 系统注册须知: NOIP2014复赛注册时间:2014年 ...

  6. [CCF] Z字形扫描

    CCF Z字形扫描 感觉和LeetCode中的ZigZag还是有一些不一样的. 题目描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z ...

  7. [CCF] ISBN号码检测

    CCF ISBN号码检测 题目概述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其 ...

  8. CCF NOI系列活动

    NOI-全国青少年信息学奥林匹克竞赛全国青少年信息学奥林匹克竞赛(NOI)是国内信息学领域内面向中学生的最高水平的大赛,每省派经选拔产生的选手(其中一名是女选手)参加,NOI每年在不同的省市举行. N ...

  9. CCF考前注意几点

    1.数组最好保持初始化习惯,且检查数组初始化在循环内还是循环外,若在循环内需要对数组进行处理,则数组初始化必须放在for循环内. 2.for循环保持好习惯,用括号括起来,以免粗心. 3.if条件判断要 ...

随机推荐

  1. TeamViewer14试用版到期-怎么解决

    Teamviewer14提示试用期已到期怎么办? 问题分析: 出现这种问题,是因为在安装是选择了[公司/商务用途]或者[以上都是]这两个选项中的一个 解决方法: 1.退出TeamViewer远程软件, ...

  2. C# Modbus 数据读取 使用NModBus4库

    ModBus通讯协议 方法名 作用 所需参数 返回值 对应功能码 ReadCoils 读取DO的状态 从站地址(8位) byte slaveAddress 起始地址(16位) ushort start ...

  3. Java自学-类和对象 单例模式

    Java的饿汉式与懒汉式单例模式 LOL里有一个怪叫大龙GiantDragon,只有一只,所以该类,只能被实例化一次 步骤 1 : 单例模式 单例模式又叫做 Singleton模式,指的是一个类,在一 ...

  4. Java自学-操作符 关系操作符

    Java的关系操作符 关系操作符:比较两个变量之间的关系 > 大于 >= 大于或等于 < 小于 <= 小于或等于 == 是否相等 != 是否不等 示例: public clas ...

  5. 有关MFC类与其窗口句柄

    Attach,其实就是让一个CWnd对象的HWND成员指向这个窗口句柄.这就是Attach主要完成的任务. Detach.如前所述,WNDCLASS其实和CWnd根本没有什么关系.它们之间只是通过CW ...

  6. java中创建线程的3种方法

    1.继承Thread类优点:可以直接使用Thread类中的方法,代码比较简单.缺点:继承Thread类之后不能继承其他类. 2.实现Runable接口优点:实现接口,比影响继承其他类或实现接口.缺点: ...

  7. Node.js 中 exports 和 module.exports 的区别

    每一个模块中都有一个 module 对象, module 对象中有一个 exports 对象 我们可以把需要导出的成员都放到 module.exports 这个接口对象中,也就是 module.exp ...

  8. 英语chalchite蓝绿松石chalchite单词

    蓝绿松石是铜和铝的磷酸盐矿物集合体,以不透明的蔚蓝色最具特色.也有淡蓝.蓝绿.绿.浅绿.黄绿.灰绿.苍白色等色.一般硬度5~6,密度2.6~2.9,折射率约1.62.长波紫外光下,可发淡绿到蓝色的荧光 ...

  9. 摘jmeter安装之后如何汉化

    下载完成后打开bin文件,选择jmeter.properties打开,搜索language,修改成zh_CN,汉化jmeter,记得去掉前面的#号,然后保存,修改完配置文件后需要重启jmeter 用的 ...

  10. 马哥docker听课记录

    容器技术:chroot.namespaces.cgroups docker平时用户空间只运行一个进程,只运行在一个namespaces中 镜像:分层构建.联合挂载 容器编排工具:kubernetes ...