Hongcow Buys a Deck of Cards

啊啊啊, 为什么我连这种垃圾dp都写不出来。。 不是应该10分钟就该秒掉的题吗。。

从dp想到暴力然后gg, 没有想到把省下的红色开成一维。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
#define PII pair<int, int>
#define SZ(x) ((int)x.size())
#define ull unsigned long long using namespace std; const int N = ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-;
const double PI = acos(-); int n;
int c[N], r[N], b[N], R, B;
char s[]; int dp[ << N][];
int Sr[ << N], Sb[ << N]; int main() {
scanf("%d", &n);
for(int i = ; i < n; i++) {
scanf("%s%d%d", s, &r[i], &b[i]);
if(s[] == 'R') c[i] = ;
else c[i] = ;
R += r[i];
B += b[i];
}
for(int S = ; S < ( << n); S++) {
for(int i = ; i < n; i++)
if(S >> i & ) Sr[S] += !c[i], Sb[S] += c[i];
}
int ans = inf;
memset(dp, -, sizeof(dp));
dp[][] = ;
for(int S = ; S < ( << n); S++) {
for(int i = ; i <= ; i++) {
if(dp[S][i] == -) continue;
for(int j = ; j < n; j++) {
if(S >> j & ) continue;
dp[S | ( << j)][i + min(r[j], Sr[S])] = max(dp[S | ( << j)][i + min(r[j], Sr[S])], dp[S][i] + min(b[j], Sb[S]));
}
}
if(S == ( << n) - ) {
for(int i = ; i <= ; i++) {
if(dp[S][i] == -) continue;
ans = min(ans, max(R - i, B - dp[S][i]) + n);
}
}
}
printf("%d\n", ans);
return ;
} /*
*/

Codeforces 744C Hongcow Buys a Deck of Cards 状压dp (看题解)的更多相关文章

  1. Codeforces 745E Hongcow Buys a Deck of Cards 状压DP / 模拟退火

    题意:现在有n张卡片(n <= 16), 每一轮你可以执行两种操作中的一种.1:获得一张红色令牌和一张蓝色令牌.2:购买一张卡片(如果可以买的话),购买的时候蓝色卡片可以充当蓝色令牌,红色同理, ...

  2. codeforces 744C Hongcow Buys a Deck of Cards

    C. Hongcow Buys a Deck of Cards time limit per test 2 seconds memory limit per test 256 megabytes in ...

  3. Codeforces 744C. Hongcow Buys a Deck of Cards(状压DP)

    这题的难点在于状态的设计 首先显然是个状压,需要一维表示卡的状态,另一维如果设计成天数,难以知道当前的钱数,没法确定是否能够购买新的卡,如果设计成钱数,会发现状态数过多,空间与时间都无法承受.但是可以 ...

  4. Codeforces Round #385 (Div. 1) C. Hongcow Buys a Deck of Cards

    地址:http://codeforces.com/problemset/problem/744/C 题目: C. Hongcow Buys a Deck of Cards time limit per ...

  5. Codeforces Beta Round #8 C. Looking for Order 状压dp

    题目链接: http://codeforces.com/problemset/problem/8/C C. Looking for Order time limit per test:4 second ...

  6. Codeforces 453B Little Pony and Harmony Chest:状压dp【记录转移路径】

    题目链接:http://codeforces.com/problemset/problem/453/B 题意: 给你一个长度为n的数列a,让你构造一个长度为n的数列b. 在保证b中任意两数gcd都为1 ...

  7. Codeforces 1383C - String Transformation 2(找性质+状压 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 神奇的强迫症效应,一场只要 AC 了 A.B.D.E.F,就一定会把 C 补掉( 感觉这个 C 难度比 D 难度高啊-- 首先考虑对问题进 ...

  8. Hongcow Buys a Deck of Cards CodeForces - 744C (状压)

    大意: n个红黑卡, 每天可以选择领取一块红币一块黑币, 或者买一张卡, 第$i$张卡的花费红币数$max(r_i-A,0)$, 花费黑币数$max(b_i-B,0)$, A为当前红卡数, B为当前黑 ...

  9. 「CF744C」Hongcow Buys a Deck of Cards「状压 DP」

    题意 你有\(n\)个物品,物品和硬币有\(A\),\(B\)两种类型,假设你有\(M\)个\(A\)物品和\(N\)个\(B\)物品 每一轮你可以选择获得\(A, B\)硬币各\(1\)个,或者(硬 ...

随机推荐

  1. js取最大最小值

    链接:https://www.cnblogs.com/waitingbar/p/4323600.html js取最小最大值--Math.min().math.max() 一.Math.min() 返回 ...

  2. JavaScript之浏览器兼容问题与IE(神经病一样的浏览器)

    IE是最讨厌的浏览器,没有之一.----题记 废话不说,粘上大图~

  3. python中enumerate()的用法

    enumerate()函数用于遍历一个可遍历的数据对象(如列表.元组或字符串等)的索引和其对应的元素,一般用于for循环中. enumerate(sequence, [start=0]) sequen ...

  4. NOIP2018 前流水账

    不务正业系列 学习yyb,zsy,ljq,mona等大佬而写的 \(qwq\) 不知道前言写些什么 \(qwq\) 尽量日更好吧 \(qwq\) \(upd:\)日更是不可能日更的,这辈子不可能的 \ ...

  5. G - 楼房重建 (线段树)

    题目链接:https://cn.vjudge.net/contest/281960#problem/G 题目大意:中文问题 具体思路:首先每一个点的值可以用当前这个点的斜率来表示,每一次输入一个值,我 ...

  6. 基于theano的降噪自动编码器(Denoising Autoencoders--DA)

    1.自动编码器 自动编码器首先通过下面的映射,把输入 $x\in[0,1]^{d}$映射到一个隐层 $y\in[0,1]^{d^{'}}$(编码器): $y=s(Wx+b)$ 其中 $s$ 是非线性的 ...

  7. LOJ 3089: 洛谷 P5319: 「BJOI2019」奥术神杖

    题目传送门:LOJ #3089. 题意简述: 有一个长度为 \(n\) 的母串,其中某些位置已固定,另一些位置可以任意填. 同时给定 \(m\) 个小串,第 \(i\) 个为 \(S_i\),所有位置 ...

  8. 【Python】Python-基础语法学习

    基础语法学习 果然学完 C++ 后再看其他语言的确有很多的共性,只需要熟悉一下python的独特语法和 C++ 中的差异就可以写出一些小的程序,而写得过程中也再次体会出python代码的精简和灵活: ...

  9. DDR3基本知识及测试【转】

    转自:http://blog.csdn.net/myarrow/article/details/7847385 一.DDR3简介 DDR3(double-data-rate three synchro ...

  10. Advanced Installer 14.9 – WPF或winform应用程序打包成exe文件

    Advanced Installer14.9 下载地址:https://pan.baidu.com/s/1uj2QcxWcpGdqsjAinNPIAw 提取码:sa3r  选择Visual Studi ...