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 + ;
int num[maxn], a[maxn];
pair<int, int>pii[maxn]; int main()
{
int n;
scanf("%d", &n);
for(int i=;i<n;i++)
{
int u, v;
scanf("%d%d", &u, &v);
pii[i] = make_pair(u, v);
}
int ans = ;
for (int i = ; i <= n; i++) scanf("%d", &a[i]);
for(int i=;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=;i<=n;i++)
{
if(num[i]==ans)
{
printf("YES\n");
printf("%d\n",i);
return ;
}
}
printf("NO\n");
return ;
}

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 + ;
int d[maxn], dp[maxn];
int main()
{
int n;
scanf("%d", &n);
int mm = ;
for(int i=;i<=n;i++)
{
int a;
scanf("%d", &a);
scanf("%d", &d[a]);
mm = max(mm, a);
}
if (d[]) dp[] = ;
int res = min(n, n - dp[]);
for(int i=;i<=mm;i++)
{
if (d[i] == ) dp[i] = dp[i - ];
else {
if (d[i] >= i) dp[i] = ;
else {
dp[i] = dp[i - - d[i]] + ;
}
}
res = min(res, n - dp[i]);
}
printf("%d\n", res);
return ;
}

A

dp cf 20190615的更多相关文章

  1. 数位DP CF 55D Beautiful numbers

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

  2. DP CF 319 div1B

    http://codeforces.com/contest/319/problem/B 题目大意: 有删除操作,每次都删除数组右边比自己小的.且紧挨着自己的数字.问最小需要删除几次. 思路: 我们定义 ...

  3. dp cf 1700 最近几天的刷题

    C. Number of Ways 这个题目的意思是,把这个n的序列分成三个连续的部分,要求这三个部分的和是一样的.问这种划分的方法有多少种. 这个题目和之前写过的数字划分有点像,这个就是要先进行前缀 ...

  4. dp cf 20190614

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

  5. dp cf 20190613

    A. Boredom 这个题目不难,但是我做的还比较复杂,不过还是很开心,至少做出来了,开始因为爆int了还wa了一发,搞得我以为自己做错了 #include <cstdio> #incl ...

  6. 数位dp入门 HDU 2089 HDU 3555

    最基本的一类数位dp题,题目大意一般是在a~b的范围,满足某些要求的数字有多少个,而这些要求一般都是要包含或者不包含某些数字,或者一些带着数字性质的要求,一般来说暴力是可以解决这一类问题,可是当范围非 ...

  7. Codeforces 295C Greg and Friends

    BFS+DP.dp[i][j][0]表示有i个50kg,j个100kg的人在左岸,dp[i][j][1]表示有i个50kg,j个100kg的人在右岸.用BFS求最短路的时候记录到达该状态的可能情况. ...

  8. 题解 AT2390 【Games on DAG】

    题目大意 给出一个n个点m条边的DAG,记为G. 可以删掉若干条边成为G′,显然有 2m 种不同的G′. 连边保证:若有 (xi →yi​) 边,则 xi​ < yi . 初始点1和点2有一个标 ...

  9. 做题记录 To 2019.2.13

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

随机推荐

  1. docker-compose 基于Dockerfile 安装并启动redis容器的血案

    前言 为了实现"一键部署"的目的,我采用Dockerfile 和 docker-compose来实现自己的目的.这个过程中,我怎么也无法启动自己的redis-server服务. 目 ...

  2. 数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法

    结构体和方法 一.值,指针和引用 我们现在有一段程序: package main import "fmt" func main() { // a,b 是一个值 a := 5 b : ...

  3. 数据结构和算法(Golang实现)(26)查找算法-哈希表

    哈希表:散列查找 一.线性查找 我们要通过一个键key来查找相应的值value.有一种最简单的方式,就是将键值对存放在链表里,然后遍历链表来查找是否存在key,存在则更新键对应的值,不存在则将键值对链 ...

  4. Davor COCI 2018

    当题目中有多组解,但要某值最大,该怎么办? 本文为博客园ShyButHandsome的原创作品,转载请注明出处 题目描述 After successfully conquering the South ...

  5. animation-play-state 在 ios 中不生效的解决办法(JS篇)

    我们要实现动画的播放和暂停,animation-play-state 在安卓端可以使用,但是在 ios 中不起作用,这时可以使用 js 来实现相同效果. 原理 通过 js 获取当前元素的 transf ...

  6. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

    年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...

  7. Key Set HDU - 5363

    这个题目套公式 2^(n-1)-1,再来个快速幂基本上就可以AC了 写这个题目的: 公式容易推到错: 容易写成 2^n-1/2...这样写出来结果也不错  但是一直哇 AC: #include< ...

  8. Python之疑难杂症包安装

    ansible 直接用pip install 安装一直失败 1.下载ansible压缩包 https://files.pythonhosted.org/packages/ec/ee/1494474b5 ...

  9. 【特征检测】BRISK特征提取算法

    [特征检测]BRISK特征提取算法原创hujingshuang 发布于2015-07-24 22:59:21 阅读数 17840 收藏展开简介        BRISK算法是2011年ICCV上< ...

  10. Shelve:对象的持久化存储

    目的:Shelve模块为任意能够pickle的Python对象实现持久化存储,并提供一个类似字典的接口. 在关系型数据库还过于复杂的情境中,Shelve为你提供了Python对象持久化的另一种方案. ...