Codeforces Round #385 //再遇状压
敲完三题挂机一小时..... 也没懂DE什么意思 rank600上了一波分...
A. Hongcow Learns the Cyclic Shift
给一个字符串,每次可以把最后一个字符拿到开头 问能形成多少种..
暴力模拟 set去重...
判断矩形即可...
并查集求最大块 然后把未标记的块放进最大块里 最后的连边数-最初的 为我们添加的最多可能
交互题 第一次遇到 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 //再遇状压的更多相关文章
- Codeforces Round #363 LRU(概率 状压DP)
状压DP: 先不考虑数量k, dp[i]表示状态为i的概率,状态转移方程为dp[i | (1 << j)] += dp[i],最后考虑k, 状态表示中1的数量为k的表示可行解. #incl ...
- Codeforces Round #385(div 2)
A =w= B QwQ C 题意:n个点m条边的无向图,其中有k个特殊点,你在这张图上尽可能多的连边,要求k个特殊点两两不连通,问最多能连多少边 分析:并查集 对原图做一次并查集,找出特殊点所在集合中 ...
- codeforces 285 D. Permutation Sum 状压 dfs打表
题意: 如果有2个排列a,b,定义序列c为: c[i] = (a[i] + b[i] - 2) % n + 1 但是,明显c不一定是一个排列 现在,给出排列的长度n (1 <= n <= ...
- CF 375C Circling Round Treasures [DP(spfa) 状压 射线法]
C - Circling Round Treasures 题意: 在一个$n*m$的地图上,有一些障碍,还有a个宝箱和b个炸弹.你从(sx,sy)出发,走四连通的格子.你需要走一条闭合的路径,可以自交 ...
- Codeforces 895C Square Subsets:状压dp【组合数结论】
题目链接:http://codeforces.com/problemset/problem/895/C 题意: 给你n个数a[i].(n <= 10^5, 1 <= a[i] <= ...
- CodeForces 599E Sandy and Nuts 状压DP
题意: 有一棵\(n(1 \leq n \leq 13)\)个节点的树,节点的标号为\(1 \sim n\),它的根节点是\(1\). 现在已知它的\(m(0 \leq m < n)\)条边,和 ...
- 【题解】codeforces 8c Looking for Order 状压dp
题目描述 Lena喜欢秩序井然的生活.一天,她要去上大学了.突然,她发现整个房间乱糟糟的--她的手提包里的物品都散落在了地上.她想把所有的物品都放回她的手提包.但是,这里有一点问题:她一次最多只能拿两 ...
- codeforces 8C. Looking for Order 状压dp
题目链接 给n个物品的坐标, 和一个包裹的位置, 包裹不能移动. 每次最多可以拿两个物品, 然后将它们放到包里, 求将所有物品放到包里所需走的最小路程. 直接状压dp就好了. #include < ...
- Codeforces 429C Guess the Tree(状压DP+贪心)
吐槽:这道题真心坑...做了一整天,我太蒻了... 题意 构造一棵 $ n $ 个节点的树,要求满足以下条件: 每个非叶子节点至少包含2个儿子: 以节点 $ i $ 为根的子树中必须包含 $ c_i ...
随机推荐
- GNU/Linux复习笔记(1)
第一次接触GNU/Linux还是大四上学期实习的那两个月在window里装了 个虚拟机玩红帽的系统,那段时间稍微学了一点命令就不玩了.后来大四下学期认识了王总,装了双系统,那段时间又对linux有了进 ...
- PHP5.6.15连接Sql Server 2008配置方案
php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...
- webuploader 上传文件参数设置
webUploader 是款很好用的优秀的开源上传组件,由百度公司开发,详细的介绍可参见webUploader 的官方文档: 最近在使用webUploader时,需要添加额外的参数,并在后台获取,参数 ...
- Ubuntu Kylin 14.04-修改IP固定地址
前言:今天我们办公室的网络不稳定,隔一会时间就断掉,后来请负责网络的同事来处理了一下,说是路由器的有些配置起冲突了,所以他将IP地址做了一些修改,比如:原IP是192.168.0.110 ...
- (Hibernate进阶)Hibernate映射——多对一单向关联映射(四)
介绍基于基本映射的关联关系映射. 概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述 ...
- RabbitMQ消息机制广播分发
public static void SendMessage() { var factory = new ConnectionFactory(); factory.HostName = "1 ...
- neutron debug
neutron port-list neutron port-delete neutron floatingip-list neutron floatingip-delete
- 采用TCP协议的PIC32MZ ethernet bootloader
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 趁热打铁,在上一PIC ...
- Ninject之旅之八:Ninject插件模型(附程序下载)
摘要 在前面的章节中,我们看了在单一的绑定条件下Ninject能够处理依赖类型,就是说,每个服务类型只绑定到单一的实现类型.然而,有些情况下我们需要绑定一个抽象服务类型到多个实现,这叫多个绑定.多个绑 ...
- TransactionScope类的使用
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:1.在项目中引用using System.Transactions命名空间(先要在添加net组件的引用); 2.具体 ...