敲完三题挂机一小时.....  也没懂DE什么意思  rank600上了一波分...

A. Hongcow Learns the Cyclic Shift

给一个字符串,每次可以把最后一个字符拿到开头  问能形成多少种..

暴力模拟  set去重...

B. Hongcow Solves A Puzzle

判断矩形即可...

C. Hongcow Builds A Nation

并查集求最大块  然后把未标记的块放进最大块里  最后的连边数-最初的   为我们添加的最多可能

D. Hongcow's Game

交互题  第一次遇到  mk一下

E. Hongcow Buys a Deck of Cards

看不懂  .....   特喵的又是个傻子状压.....  是时候总结一发  状压特征了

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <map>
using namespace std;
typedef long long ll;
typedef pair<int,int>pii;
pii make(int x,int y)
{
return pii(x,y);
}
map<pii,int>dp[<<];
int n,r[],b[],c[];
void UMAX(int& x,int y){if(x<y) x=y;};
void UMIN(int& x,int y){if(x>y) x=y;};
int main()
{
scanf("%d",&n);
for(int i=;i<n;i++)
{
char ch[];
scanf("%s %d%d",ch,&r[i],&b[i]);
if(ch[]=='R') c[i] = ;
}
dp[][make(,)] = ;
map<pii,int>::iterator it;
for(int x=;x<(<<n);x++)
{
int re = ,bl = ;
for(int j=;j<n;j++)if((x>>j)&) c[j]?++re:++bl;
for(int j=;j<n;j++)
{
if(x&(<<j)) continue;
for(it = dp[x].begin();it!=dp[x].end();it++)
{
int nxt = (<<j)|x;
int cnt = ; //花费
int rv = max(r[j]-re,),bv = max(b[j]-bl,);
if(it->first.first<rv) UMAX(cnt,rv-it->first.first);
if(it->first.second<bv) UMAX(cnt,bv-it->first.second);
pii nxt_s = pii(it->first.first+cnt-rv,it->first.first+cnt-bv);
if(dp[nxt].count(nxt_s)==)dp[nxt][nxt_s] = INT_MAX;
UMIN(dp[nxt][nxt_s],cnt+it->second+);//1 为买操作
}
} }
int ans = INT_MAX;
for(it = dp[(<<n)-].begin();it!=dp[(<<n)-].end();it++)
{
UMIN(ans,it->second);
}
printf("%d\n",ans);
return ;
}

AC代码

Codeforces Round #385 //再遇状压的更多相关文章

  1. Codeforces Round #363 LRU(概率 状压DP)

    状压DP: 先不考虑数量k, dp[i]表示状态为i的概率,状态转移方程为dp[i | (1 << j)] += dp[i],最后考虑k, 状态表示中1的数量为k的表示可行解. #incl ...

  2. Codeforces Round #385(div 2)

    A =w= B QwQ C 题意:n个点m条边的无向图,其中有k个特殊点,你在这张图上尽可能多的连边,要求k个特殊点两两不连通,问最多能连多少边 分析:并查集 对原图做一次并查集,找出特殊点所在集合中 ...

  3. codeforces 285 D. Permutation Sum 状压 dfs打表

    题意: 如果有2个排列a,b,定义序列c为: c[i] = (a[i] + b[i] - 2) % n + 1 但是,明显c不一定是一个排列 现在,给出排列的长度n (1 <= n <= ...

  4. CF 375C Circling Round Treasures [DP(spfa) 状压 射线法]

    C - Circling Round Treasures 题意: 在一个$n*m$的地图上,有一些障碍,还有a个宝箱和b个炸弹.你从(sx,sy)出发,走四连通的格子.你需要走一条闭合的路径,可以自交 ...

  5. Codeforces 895C Square Subsets:状压dp【组合数结论】

    题目链接:http://codeforces.com/problemset/problem/895/C 题意: 给你n个数a[i].(n <= 10^5, 1 <= a[i] <= ...

  6. CodeForces 599E Sandy and Nuts 状压DP

    题意: 有一棵\(n(1 \leq n \leq 13)\)个节点的树,节点的标号为\(1 \sim n\),它的根节点是\(1\). 现在已知它的\(m(0 \leq m < n)\)条边,和 ...

  7. 【题解】codeforces 8c Looking for Order 状压dp

    题目描述 Lena喜欢秩序井然的生活.一天,她要去上大学了.突然,她发现整个房间乱糟糟的--她的手提包里的物品都散落在了地上.她想把所有的物品都放回她的手提包.但是,这里有一点问题:她一次最多只能拿两 ...

  8. codeforces 8C. Looking for Order 状压dp

    题目链接 给n个物品的坐标, 和一个包裹的位置, 包裹不能移动. 每次最多可以拿两个物品, 然后将它们放到包里, 求将所有物品放到包里所需走的最小路程. 直接状压dp就好了. #include < ...

  9. Codeforces 429C Guess the Tree(状压DP+贪心)

    吐槽:这道题真心坑...做了一整天,我太蒻了... 题意 构造一棵 $ n $ 个节点的树,要求满足以下条件: 每个非叶子节点至少包含2个儿子: 以节点 $ i $ 为根的子树中必须包含 $ c_i ...

随机推荐

  1. adb server无法终止问题

    这两天通过python去连接Android手机时,一直提示:Adb connection Error:An existing connection was forcibly closed by the ...

  2. 基于mini2440的Qt移植

    花了很长时间,终于把Qt移植到mini2440开发板上了,不能说完全成功,总算是完成一大步,各中过程心酸,废话不多说,下面正式讲解移植过程. 移植环境: win7系统,虚拟机是ubuntu12.04 ...

  3. [转载:]C#与Fortran混合编程之本地调用Fortran动态链接库

    前言 C#发展到现在,已是一门相当完善的语言,他基于C语言风格,演化于C++.并依靠强大的.NET底层框架.C#可以用来快速构建桌面及Web应用.然而在我们的实际工作中,尽管C#已经非常完善,但还是不 ...

  4. 百度云 + GIT

    百度云同步 百度云同步,会将本地的某个文件目录和云端进行同步.如果在本地将这个同步的目录设置为Git的中心服务器,那么本地push到中心服务器的内容也会被同步到云端.其他开发者只要也进行相同的设置,就 ...

  5. Monkey基础

    一.Monkey工具简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序 ...

  6. ---Java 678

    sudo add-apt-repository ppa:webupd8team/java sudo apt-get update udo apt-key adv --recv-key --keyser ...

  7. javascript检查移动设备是否支持重力方向感应

    javascript如何检查移动设备,如手机平台是否支持重力或者方向感应. 可以使用html5提供的重力和方向感应接口来判断. html5 中针对高端手机提供了重力感应和重力加速的接口,开发可以利用这 ...

  8. solrCloud的两种部署方式

    solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成 ...

  9. DELPHI 读取csv 格式文本文件

    procedure TForm1.btn1Click(Sender: TObject); var sFile,sLine: TStrings; r,c:Integer; begin sFile := ...

  10. php后台权限管理

    今天新到一家公司,重新维护升级了之前的权限管理. 权限管理思路:1.三张表(公司项目比较复杂,所以数据表远比这个复杂,这里只实现权限管理,简化一下)action表------权限大菜单:这个表没有实际 ...