2019年2月13日

cf1025c 思维题

摘要: /* bwwwbwwbw wwbwwwbwb 不管从哪里断开翻转。翻转后的串再整体翻转一定是2s的子串 */ #include using namespace std; int len; char s[1000000]; int main(){ cin>>s+1; int len=strlen(s+1); if(len==1){ puts("1"); re... 阅读全文

posted @ 2019-02-13 23:42 zsben 阅读(192) 评论(0) 推荐(0) 编辑

cf1051d 简单的状态压缩dp

摘要: /* 给定一个二行n列的格子,在里面填黑白色,要求通过黑白色将格子分为k块 请问有多少种填色方式 dp[j][k][0,1,2,3] 填到第j列,有k块,第j列的颜色, */ #include using namespace std; #define ll long long #define mod 998244353 //0全白,1黑白,2白黑,3黑黑 ll dp[1050][105... 阅读全文

posted @ 2019-02-13 23:41 zsben 阅读(296) 评论(0) 推荐(0) 编辑

cf1042d 树状数组逆序对+离散化

摘要: /* 给定一个数组,要求和小于t的段落总数 求前缀和 dp[i]表示以第i个数为结尾的小于t的段落总数,sum[i]-sum[l] using namespace std; #define ll long long #define maxn 200005 ll tmp[maxn],n,a[maxn],t,sum[maxn],ans; ll bits[maxn]; void add(int ... 阅读全文

posted @ 2019-02-13 23:41 zsben 阅读(207) 评论(1) 推荐(0) 编辑

状态压缩dp小结

摘要: 最近一段时间算是学了一些状态压缩的题目,在这里做个小结吧 首先是炮兵布阵类题目,这类题目一开始给定一个矩形,要求在上面放置炮兵,如果在一格放了炮兵那么周围的某些格子就不能放炮兵,求最大能放置炮兵的数量 poj1185炮兵布阵 hdu2176 炮兵布阵修改版 poj3254 炮兵布阵弱化版 poj15 阅读全文

posted @ 2019-02-13 23:37 zsben 阅读(226) 评论(0) 推荐(0) 编辑

poj2836 状态压缩dp

摘要: 自己的做法是枚举i,j作为顶点的矩形,然后再更新状态S,但是这种做法是错误的 正解是先把所有矩形对求出来,然后枚举状态S,每个处理每个状态时再枚举已经求出的矩形对,用旧状态更新新状态 阅读全文

posted @ 2019-02-13 13:19 zsben 阅读(194) 评论(0) 推荐(0) 编辑

导航