dp cf 20190615
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相关推荐
- 数位DP CF 55D Beautiful numbers
题目链接 题意:定义"beautiful number"为一个数n能整除所有数位上非0的数字 分析:即n是数位所有数字的最小公倍数的倍数.LCM(1到9)=2520.n满足是252 ...
- dp cf 20190614
C. Hard problem 这个题目一开始看还感觉比较复杂,但是还是可以写,因为这个决策很简单就是对于这个字符串倒置还是不倒置. 然后我不会一维去转移,直接用二维,第二维用01来表示转移和不转移, ...
- QAQorz的训练记录
感觉还是该从今天开始记下来 5.8日查询 870(查询系统) + 100(洛谷) + 100(牛客) = 1070题, 去重按1000题算 5.8 牛客寒训营 3F 双向搜索+处理前后缀积 牛客寒训营 ...
- 【题解报告】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 ...
- 做题记录 To 2019.2.13
2019-01-18 4543: [POI2014]Hotel加强版:长链剖分+树形dp. 3653: 谈笑风生:dfs序+主席树. POJ 3678 Katu Puzzle:2-sat问题,给n个变 ...
- 【日程训练】算法脱贫计划
算法脱贫计划 前言 2020-12-26 2020-12-27 2020-12-28 ~ 2020-1-1 2021-1-1 ~ 2021-1-16 [寒假训练计划]2021-1-17 ~ 2021- ...
- 当前进度,已学算法,未做题目
当前学习 CSP-S备战中 已学算法 从初一开始算起,按照时间顺序排序 算法简称 算法全称 备注 无 高精度 比较基础的算法 d e p t h f i r s t s e a r c h ( D F ...
- dp专题-cf 711c
cf 711 c 题意:给出n颗树,初始有颜色,现在要涂颜色,只能对没有涂颜色的树上色,一棵树涂颜色有代价,现在要求,涂完颜色后,把n颗树划分成k个连续区间,每一个划分定义为相同颜色的连续区间,求k个 ...
- CF#764(div.3A~D)dp进阶
CF#764(div.3A~D)&&dp进阶 CF#764(div.3) Problem - A - Codeforces 题意 一个数列,每次操作可以使这个数列中的任何数加1,问最少 ...
最新文章
- Linux邻居子系统的细节之confirm-Open××× server模式的MAC地址学习
- dede php可以传多个参数,织梦分页标签dede:pagelist传参数
- filebeat相关registry文件内容解析
- codeforces(牛客网dp专题,排序)
- 运维自动化之基于python语言的文字界面的运维管理软件
- 基于java语言轻量级实时风控引擎
- mysql分组随机取数据_MySql分组后随机获取每组一条数据的操作
- Powerpoint 插件制作日记-1
- Color-UI 简介及使用教程
- python脚本注册服务+pyinstaller打包exe开机自启动服务
- ics服务启动失败的一种解决方法
- CommonJS模块化
- 蓝桥杯试题算法训练之删除数组零元素——Python满分解答
- 我的电脑中无法新建txt文本文档
- 什么是接口?为什么要使用抓包工具?Fiddler实现截包与篡改、接口自动化测试
- 高新技术企业定义和好处
- 合并单元格后怎么拆分单元格(拆分合并后的单元格方法)
- 洛谷P1873-砍树(二分答案)
- PowerDesigner16.7 安装与配置
- CAT翻译软件真的是翻译神器吗?
热门文章
- 2022-2028年中国干洗行业市场全景调研与投资前景预测报告
- Go 学习笔记(72)— Go 第三方库之 pkg/errors 带堆栈的错误处理
- matplotlib绘制热力图
- JDBC与数据库连接工具对比分析
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
- 怎样训练YOLOv3
- [JS] 闭包与内存泄漏
- linux ftp随机端口,linuxFTP生产环境配置
- List 为什么可以实例化ArrayList
- Caused by: org.gradle.api.InvalidUserDataException: NDK not configured