03 2018 档案

摘要:F - Drivers Dissatisfaction 题目大意:给你n个点,m条边,每个边都有一个权重w,每条边也有一个c表示,消耗c元可以把这条边的权重减1,求最多消耗s元的最小生成树。 思路:因为一条边的权重没有下限所以s元肯定是用在一条边上的。 那么我们先跑一个最小生成树,把这棵最小生成树建 阅读全文
posted @ 2018-03-30 14:51 NotNight 阅读(190) 评论(0) 推荐(0)
摘要:Codeforces Round #290 (Div. 2) C题:给你n个字符串要求你重新排列小写字母的字典序,要求使给的字符串按字典序从小到大排列。 思路:很容易想到相邻两串找到第一个不相同的建边,然后跑拓扑序就好啦。 1 #include<bits/stdc++.h> 2 #define fi 阅读全文
posted @ 2018-03-29 00:42 NotNight 阅读(243) 评论(0) 推荐(0)
摘要:https://www.nowcoder.com/acm/contest/70/E 思路:我dp好菜啊。。 dp[ i ][ j ][ k ][ op ] 表示 到第 i 个字符,用来 j 次操作,能否到达k并朝向op方向。 阅读全文
posted @ 2018-03-18 01:12 NotNight 阅读(181) 评论(0) 推荐(0)
摘要:D - Kay and Snowflake 题目大意:给你一棵数q个询问,每个询问给你一个顶点编号,要你求以这个点为根的子树的重心是哪个节点。 定义:一棵树的顶点数为n,将重心去掉了以后所有子树的顶点的个数的两倍不会超过n。 性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两 阅读全文
posted @ 2018-03-15 19:13 NotNight 阅读(156) 评论(0) 推荐(0)
摘要:题意:给你一个n行m列的格子,问你放1*2的木块有多少种放法。 思路:dp[i][s] 表示到第i行状态为s的方法数。 状态0表示这个位置是被下面那个竖着放的木块占了的,状态1表示是当前行横着放占了的。 暴力打出所有的匹配,然后状态转移就好啦,好像也能用轮廓线dp做,这个不会,明天补吧。。。。 终于 阅读全文
posted @ 2018-03-10 00:42 NotNight 阅读(96) 评论(0) 推荐(0)
摘要:Codeforces Round #469 (Div. 2) 难得的下午场,又掉分了。。。。 Problem A: 怎么暴力怎么写。 1 #include<bits/stdc++.h> 2 #define fi first 3 #define se second 4 #define mk make_ 阅读全文
posted @ 2018-03-09 23:49 NotNight 阅读(127) 评论(0) 推荐(0)
摘要:壮压水一水,刚开始脑残了非要开两维dp。。。 阅读全文
posted @ 2018-03-09 01:35 NotNight 阅读(111) 评论(0) 推荐(0)
摘要:比较裸的状压,cnt没开 long long WA到死。。。 还要注意一下n为1的情况。 阅读全文
posted @ 2018-03-09 00:57 NotNight 阅读(130) 评论(0) 推荐(0)
摘要:POJ - 3311 裸状压,刚开始太天真没求最短路,脑子抽了。。。 阅读全文
posted @ 2018-03-07 15:54 NotNight 阅读(117) 评论(0) 推荐(0)
摘要:POJ - 3254 中文题。。 思路:这题可把我恶心坏了,我刚开始的思路其实是正确的。。。 首先我想开个dp[i][s1][s2]保存到 i行 为止当前行状态为s1,上一行状态为s2 的最大个数,然后我先把满足行内条件的 状态存起来,空间用滚动数组优化,但是我在写转移方程的时候发现复杂度太大。。。 阅读全文
posted @ 2018-03-07 00:05 NotNight 阅读(137) 评论(0) 推荐(0)
摘要:Lock Puzzle 题目大意:给你两个字符串一个s,一个t,长度<=2000,要求你进行小于等于6100次的shift操作,将s变成t, shift(x)表示将字符串的最后x个字符翻转后放到最前面。 思路:不会写,看了题解。。。 因为长度为3000,操作为6500,我们考虑每三次操作将一个字符放 阅读全文
posted @ 2018-03-05 23:47 NotNight 阅读(137) 评论(0) 推荐(0)
摘要:A、B都是暴力搞一搞。 A: 1 #include<bits/stdc++.h> 2 #define fi first 3 #define se second 4 #define mk make_pair 5 #define pii pair<int,int> 6 #define read(x) s 阅读全文
posted @ 2018-03-05 17:21 NotNight 阅读(245) 评论(0) 推荐(0)
摘要:HDU - 3333 题目大意:求区间不同类型的数字之和。 离线:将询问按 r 值排序,拿到一个询问的时候,我们将比位置在r之前的数字全部加入树状数组,加入数字的规则如下: 假设加入的数字为x,如果x之前没有出现过,直接加入,否则删除前一个x,再加入x,这样保证了树状数组里面一类数只有一个,并且都是 阅读全文
posted @ 2018-03-04 14:53 NotNight 阅读(252) 评论(0) 推荐(0)