- 博客(5)
- 收藏
- 关注
原创 codeforces 812b Sagheer, the Hausmeister
题目大意: 从左下角开始出发,把每一行的灯都关闭了,最左和最右是楼梯,向上只能通过楼梯,并且每一层都关完才能上一层,上楼和走过房间的时间都是一分钟,问最短时间这道题就是一个线性的DP 考虑从左和从右两种情况就好了一开始的时候看错题目了,把note 看成是限制条件,就做错了 另外一个就是需要仔细考虑全零行的情况#include <bits/stdc++.h>#define inf 0x3f3f3f
2017-06-21 21:49:47 295
原创 Karen and Game codeforces 816c
题目大意:给一个n*m的零矩阵 要通过整行或者整列+1 变成给定矩阵,求最小的次数和操作步骤其实很简单,就是找出每行 或者每列中最小的,然后加上去,行列各处理一遍就好了 这道题的陷阱在于 对于一个n<=m的矩阵,就先处理行 对于n>m的矩阵就先处理列#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>
2017-06-18 11:19:03 265
原创 Karen and Coffee codeforces 816B
题目大意: 给你n种咖啡的烹调方法,每种都包含了该种方法的咖啡的适宜温度,从l 到r,现在需要的咖啡至少满足k种烹调方法, 在q个询问中,每个区间[a,b]中有多少个适宜的咖啡这道题目,n q给的是200000 显然不可能用n²的方法过,因此这道题应该用前缀和相减来做思路:我们要知道有多少个适宜的咖啡,我们可以想到对应每种温度之前所有满足的咖啡的个数,那么只要相减,就能得到区间内的符合条件的个数
2017-06-18 11:13:20 260
原创 An impassioned circulation of affection(codefoces 814c)
题目大意 :给你一串字符,修改其中M个为字符C 输出c最长的个数这个题首先按照字符串,进行预处理,在某段内某字符的个数,因此就能知道在该段内修改m个输出的最多字符个数 最后记得进行dp 如果修改更少的情况能够有更长的字串,就直接加上去#include <bits/stdc++.h>using namespace std;typedef long long ll;int dp[30][2000
2017-06-13 21:06:38 259
原创 已经没办法再简单的状压dp入门练习
题目: 有一个N*M(N<=5,M<=1000)的棋盘,现在有1*2及2*1的小木块无数个,要盖满整个棋盘,有多少种方式?答案只需要mod1,000,000,007即可。例如:对于一个2*2的棋盘,有两种方法,一种是使用2个1*2的,一种是使用2个2*1的。 分析:此题由于N比较小,所以可以通过状态压缩,去搜索每一个状态,然后根据前一列对后一列的影响,这样我们只要求出第m+1列状态为0的情况的个
2017-06-08 16:53:55 1315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人