
算法-动态规划
YxuanwKeith
这个作者很懒,什么都没留下…
展开
-
HNOI2016模拟4.10 线性代数与逻辑 简化条件后的简单DP
HNOI2016模拟4.10 线性代数与l逻辑 简化条件后的简单DP原创 2016-04-12 17:43:00 · 1284 阅读 · 3 评论 -
Codeforces Round #397 (Div. 1 + Div. 2 combined) 题解(CF765A,CF765B,CF765C,CF765D,CF765E,CF765F)
A.Neverending competitions(Codeforces 765A)题解:直接判断坐飞机的次数是奇数还是偶数就可以了。#include <cstring>#include <cstdio>#include <algorithm>using namespace std;char h[100];int n;int main() { scanf("%d", &n);原创 2017-02-21 21:00:58 · 1211 阅读 · 0 评论 -
CodeForces AIM Tech Round 3 (Div. 1) 题解(CF708A,CF708B,CF708C,CF708D,CF708E)
A. Letters Cyclic Shift(CF708A)题解:直接找到第一个不是a的位置i和i后面第一个为a的位置j(如果没有,j=len(s)),那么翻转的肯定就是[i,j]这一段。如果这个字符串都是a,那么就翻转最后一个字符。#include <cstring>#include <cstdio>#include <algorithm>using namespace std;char s原创 2017-02-21 08:50:32 · 1415 阅读 · 1 评论 -
JZOJ4849. 【GDOI2017模拟11.3】记忆的轮廓 期望+答案上界剪枝
转自a_crazy_czy题目大意原题意挺复杂的,我就尽我能力写简化一点吧…… 给定一个有mm个点的树形结构(11为根),其中保证11到nn按照编号顺序形成一条链。 然后你要在这棵树上推Gal从11号点走到nn号点,你走动的规则是从当前点等概率随机选择一个儿子走下去。如果你走进了错误的子树肯定走不到点nn嘛,因此我们可以设置最多pp个存档点,每当经过一个设置的存档点,你的当前存档点就更新为它。如转载 2016-11-03 22:35:29 · 923 阅读 · 2 评论 -
JZOJ4844. 【GDOI2017模拟11.2】抗拒黄泉 背包合并相同状态优化容斥
题目大意有一个游戏,给你一个n∗mn*m的棋盘,每个位置是0或1,现在你会随机在数值为1的格子进行上打标记操作。当棋盘中的每一行和每一列都至少有一个标记时结束,问结束的期望操作次数。n,m≤20,nm≤200n,m\leq20,nm\leq200解题思路设第ii次操作结束游戏的概率是gig_i,那么答案就是∑∞i=0gi∗i\sum_{i=0}^{\infty }g_i*i,变形一下,设Pi=∑原创 2016-11-02 21:03:37 · 887 阅读 · 0 评论 -
JZOJ4760【雅礼联考GDOI2017模拟9.4】同桌的你 环套树拆边DP
题目大意有NN个人,给定他们的性别和他们期望的同桌。现在要把这NN个人两两分配成同桌,问最多有多少对同桌中至少有一个人的同桌是期望的同桌,在满足这个的前提最多有多少对满足要求的同桌的性别是不同的。(有tt组数据。)N≤106N \leq 10^6 t≤3t \leq 3解题思路我们可以把每个人向他的期望同桌连一条边。那么显然连完后的图是由若干个环套树组成的。那么问题就转化成了,在这幅图中,能找到对原创 2016-09-06 17:09:26 · 1277 阅读 · 0 评论 -
JZOJ4555【NOI2016模拟6.20】没有强联通分量的无聊世界 利用Dag性质的简单Dp
题目大意现在有一个NN个点MM条边的有向图,问最少减去多少条边使得这个有向图无有向环。N≤22N \leq 22 M≤N∗(N−1)2M \leq \frac{N * (N - 1)}{2}解题思路不存在有向环,即操作后的图要是一幅DagDag。回想一下DagDag的性质,即只能拓扑序小的向拓扑序大的点连边。那么我们设F[s]F[s]表示状态为ss(一个二进制)的点形成一个DagDag能加入边数的原创 2016-08-22 22:03:30 · 1121 阅读 · 0 评论 -
CF 581E Kojiro and Furrari(JZOJ 4689 新车) 动态规划维护贪心
题目大意现在有一个长度为MM的数轴,上面有一个起点和一个终点,起点一定在终点左边。现在你要开车从起点到达终点,但是你的油箱只能走长度为SS的路程。途中有NN个加油站,加油站加的汽油有3种,分别为98,95,92,并且一个加油站只能加一种有油,在每个加油站你可以加任意多的油。一开始你加满了98的汽油,现在给定你每个加油站的位置和可以加的油的种类。问能否到达终点,如果可以最少需要加多少92汽油,当加92原创 2016-08-15 10:06:45 · 990 阅读 · 0 评论 -
GDOI2016模拟4.22 无界单词 字符串上的动态规划
题目大意给定一个NN和KK,问所有长度为LL的仅包含字符a,ba,b的单词中有多少个无界单词,以及字典序第KK的无界单词是什么? 有界单词:对于一个单词SS,如果存在一个长度LL,满足0<L<length(S)0 < L < length(S),并且使得SS长度为LL的前缀与S长度为LL的后缀相同,则称SS是有界的。 无界单词:对于一个单词SS,如果不存在一个LL使之成为有界单词,即它为无界单词原创 2016-04-22 20:56:27 · 1459 阅读 · 2 评论 -
CodeChef March Challenge 2017 题解
CC XENTASK由于要交替选,所以要不第一个人选位置为奇数的数,第二个人选位置为偶数的数,要不第一个人选位置为偶数的数,第二个人选位置为奇数的数。取最小值即可。#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int n, sum[2][2];void solve() { memset原创 2017-03-13 20:26:30 · 1358 阅读 · 0 评论