A. Timofey and a tree

这个不算是dp,就是一个思维题,好难想的思维题,看了题解才写出来的,

把点和边分开,如果一条边的两个点颜色不同就是特殊边,特殊边两边连的点就叫特殊点,

如果一个点的被计算的次数等于特殊边的次数,则说明它是我们所求的点

#include <cstdio>
#include <cstdlib>
#include <queue>
#include <vector>
#include <cstring>
#include <algorithm>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
int num[maxn], a[maxn];
pair<int, int>pii[maxn];int main()
{int n;scanf("%d", &n);for(int i=1;i<n;i++){int u, v;scanf("%d%d", &u, &v);pii[i] = make_pair(u, v);}int ans = 0;for (int i = 1; i <= n; i++) scanf("%d", &a[i]);for(int i=1;i<n;i++){int u = pii[i].first, v = pii[i].second;if(a[u]!=a[v]){num[u]++;num[v]++;ans++;}}for(int i=1;i<=n;i++){if(num[i]==ans){printf("YES\n");printf("%d\n",i);return 0;}}printf("NO\n");return 0;
}

A

A. Chain Reaction

这个我觉得挺难的。。。。

网上题解,dp[i]来表示激活第i个位置,从前面往后推到第i个位置,这个塔存留下来的数量。

这个是线性的,后面那个位置都是由前面的那个位置推过来的,如果我们选了后面那个位置,如果后面的无法把前面的那个位置炸掉

那么只能不炸,或者由最后添加的那个点来炸掉之前你需要炸掉的区间。

这个题目简单,是因为可以转化成线性的,不过我觉得好难想。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm>
#define inf 0x3ff3f3f
using namespace std;
const int maxn = 1e6 + 10;
int d[maxn], dp[maxn];
int main()
{int n;scanf("%d", &n);int mm = 0;for(int i=1;i<=n;i++){int a;scanf("%d", &a);scanf("%d", &d[a]);mm = max(mm, a);}if (d[0]) dp[0] = 1;int res = min(n, n - dp[0]);for(int i=1;i<=mm;i++){if (d[i] == 0) dp[i] = dp[i - 1];else {if (d[i] >= i) dp[i] = 1;else {dp[i] = dp[i - 1 - d[i]] + 1;}}res = min(res, n - dp[i]);}printf("%d\n", res);return 0;
}

A

转载于:https://www.cnblogs.com/EchoZQN/p/11026591.html

dp cf 20190615相关推荐

  1. 数位DP CF 55D Beautiful numbers

    题目链接 题意:定义"beautiful number"为一个数n能整除所有数位上非0的数字 分析:即n是数位所有数字的最小公倍数的倍数.LCM(1到9)=2520.n满足是252 ...

  2. dp cf 20190614

    C. Hard problem 这个题目一开始看还感觉比较复杂,但是还是可以写,因为这个决策很简单就是对于这个字符串倒置还是不倒置. 然后我不会一维去转移,直接用二维,第二维用01来表示转移和不转移, ...

  3. QAQorz的训练记录

    感觉还是该从今天开始记下来 5.8日查询 870(查询系统) + 100(洛谷) + 100(牛客) = 1070题, 去重按1000题算 5.8 牛客寒训营 3F 双向搜索+处理前后缀积 牛客寒训营 ...

  4. 【题解报告】ZJNU综合训练(2021.1.26)

    [题解报告]ZJNU综合训练(2021.1.26) B C D F H I J M 综合训练 ZJNU综合训练(2021.1.26) B:DP+搜索 | CF 1057C C:组合数学+dp | CF ...

  5. 做题记录 To 2019.2.13

    2019-01-18 4543: [POI2014]Hotel加强版:长链剖分+树形dp. 3653: 谈笑风生:dfs序+主席树. POJ 3678 Katu Puzzle:2-sat问题,给n个变 ...

  6. 【日程训练】算法脱贫计划

    算法脱贫计划 前言 2020-12-26 2020-12-27 2020-12-28 ~ 2020-1-1 2021-1-1 ~ 2021-1-16 [寒假训练计划]2021-1-17 ~ 2021- ...

  7. 当前进度,已学算法,未做题目

    当前学习 CSP-S备战中 已学算法 从初一开始算起,按照时间顺序排序 算法简称 算法全称 备注 无 高精度 比较基础的算法 d e p t h f i r s t s e a r c h ( D F ...

  8. dp专题-cf 711c

    cf 711 c 题意:给出n颗树,初始有颜色,现在要涂颜色,只能对没有涂颜色的树上色,一棵树涂颜色有代价,现在要求,涂完颜色后,把n颗树划分成k个连续区间,每一个划分定义为相同颜色的连续区间,求k个 ...

  9. CF#764(div.3A~D)dp进阶

    CF#764(div.3A~D)&&dp进阶 CF#764(div.3) Problem - A - Codeforces 题意 一个数列,每次操作可以使这个数列中的任何数加1,问最少 ...

最新文章

  1. Linux邻居子系统的细节之confirm-Open××× server模式的MAC地址学习
  2. dede php可以传多个参数,织梦分页标签dede:pagelist传参数
  3. filebeat相关registry文件内容解析
  4. codeforces(牛客网dp专题,排序)
  5. 运维自动化之基于python语言的文字界面的运维管理软件
  6. 基于java语言轻量级实时风控引擎
  7. mysql分组随机取数据_MySql分组后随机获取每组一条数据的操作
  8. Powerpoint 插件制作日记-1
  9. Color-UI 简介及使用教程
  10. python脚本注册服务+pyinstaller打包exe开机自启动服务
  11. ics服务启动失败的一种解决方法
  12. CommonJS模块化
  13. 蓝桥杯试题算法训练之删除数组零元素——Python满分解答
  14. 我的电脑中无法新建txt文本文档
  15. 什么是接口?为什么要使用抓包工具?Fiddler实现截包与篡改、接口自动化测试
  16. 高新技术企业定义和好处
  17. 合并单元格后怎么拆分单元格(拆分合并后的单元格方法)
  18. 洛谷P1873-砍树(二分答案)
  19. PowerDesigner16.7 安装与配置
  20. CAT翻译软件真的是翻译神器吗?

热门文章

  1. 2022-2028年中国干洗行业市场全景调研与投资前景预测报告
  2. Go 学习笔记(72)— Go 第三方库之 pkg/errors 带堆栈的错误处理
  3. matplotlib绘制热力图
  4. JDBC与数据库连接工具对比分析
  5. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
  6. 怎样训练YOLOv3
  7. [JS] 闭包与内存泄漏
  8. linux ftp随机端口,linuxFTP生产环境配置
  9. List 为什么可以实例化ArrayList
  10. Caused by: org.gradle.api.InvalidUserDataException: NDK not configured