雅礼 noip2018 模拟赛day3 T2
典型的状压思想
设0表示黑球,1表示白球,用一串01序列代表剩下的球的状态,记f[i]表示在i状态下取球的最大期望
那么可以利用记忆化搜索更新,每一层枚举可能拿走的球然后向下搜索,同时记忆化即可
在状态中删去一个点可以利用位运算实现
同时要注意一个问题,就是状态0010和状态010并不是相同的状态,但是如果不做处理在记忆化的过程中很可能把他俩算成相同的状态,所以我们在初始状态最前面放一个1,这样就可以区分上述两种状态了
还有就是本题卡常卡的很厉害,所以对比较小的状态我们用数组,对过大的状态再使用map来操作即可
注意使用double
#include <cstdio>
#include <map>
#define ll unsigned int
using namespace std;
const ll con=(1<<25)+(1<<23)+(1<<22);
int n,k;
char s[35];
double ret=0;
int cct=0;
map <ll,double> M;
double f[con];
inline double max(double x,double y)
{
return x>y?x:y;
}
inline ll erase(ll sit,int pos)
{
ll temp=sit>>(pos-1);
temp<<=(pos-1);
ll ret=sit^temp;
sit>>=pos;
sit<<=(pos-1);
ret|=sit;
return ret;
}
inline int cot(ll sit)
{
int cyt=0;
for(int i=0;i<n-k;i++)
{
if((1<<i)&sit)
{
cyt++;
}
}
return cyt;
}
double dfs(int dep,ll sit)
{
if(sit<con&&f[sit])
{
return f[sit];
}else if(M[sit])
{
return M[sit];
}
if(dep==k+1)
{
double tot=(double)cct-cot(sit);
return tot;
}
double temp=0;
for(int i=1;i<=n-dep+1;++i)
{
int ri=n+2-i-dep;
double tt=0;
tt=max(tt,dfs(dep+1,erase(sit,i)));
tt=max(tt,dfs(dep+1,erase(sit,ri)));
temp+=tt;
}
if(sit<con)
{
return f[sit]=temp/(double)(n-dep+1);
}else
{
return M[sit]=temp/(double)(n-dep+1);
}
}
int main()
{
freopen("v.in","r",stdin);
freopen("v.out","w",stdout);
scanf("%d%d",&n,&k);
scanf("%s",s+1);
ll ori=0;
bool flag=0;
for(int i=1;i<=n;++i)
{
if(s[i]=='W')
{
ori|=1;
cct++;
}
if(s[i]!=s[i-1]&&i!=1)
{
flag=1;
}
ori<<=1;
}
if(k==0)
{
printf("0.000000000\n");;
return 0;
}
if(k==n)
{
printf("%.10lf\n",(double)cct);
return 0;
}
if(!flag)
{
if(s[1]=='W')
{
printf("%.10lf\n",(double)k);
}else
{
printf("0.000000000\n");
}
return 0;
}
ori>>=1;
ori|=(1<<n);
printf("%.10lf\n",(double)dfs(1,ori));
return 0;
}
雅礼 noip2018 模拟赛day3 T2的更多相关文章
- 雅礼 noip2018 模拟赛 day3 T3
典型树形dp 这里,我们应该看到一些基本性质: ①:如果这个边不能改(不是没有必要改),我们就不改,因为就算改过去还要改回来,显然不是最优的 注意:"不能改"是指边的性质和要求的相 ...
- NOIP2018 模拟赛(二十二)雅礼NOI
Preface 这次的题目都是NOI+的题,所以大家的分数都有点惨烈. 依靠T1大力骗分水到Rank2 所以想看正解的话看这里吧 A. 「雅礼NOI2018模拟赛(一) Day1」树 看一眼题目感觉十 ...
- [NOIP2018模拟赛10.16]手残报告
[NOIP2018模拟赛10.16]手残报告 闲扯 炉石乱斗模式美滋滋啊,又颓到好晚... 上来T2先敲了树剖,看T1发现是个思博DP,然后没过大样例,写个暴力发现还是没过大样例!?才发现理解错题意了 ...
- [NOIP2018模拟赛10.22]咕咕报告
闲扯 这是篇咕咕了的博客 考场上码完暴力后不知道干什么,然后忽然发现这个T1好像有点像一道雅礼集训时讲过的CF题目 Rest In Shades ,当时那道题还想了挺久不过思路比较妙,于是我就也\(y ...
- [雅礼NOIP2018集训 day4]
感觉状态极差啊,今天居然爆零了 主要是以下原因: 1.又是T1看错题肝了两个小时,发现题意理解错误瞬间心态爆炸 2.T2交错了文件名 3.T3暴力子任务和正解(假的)混在一起,输出了两个答案 都想为自 ...
- [NOIP2018模拟赛10.18]自闭报告
闲扯 这一天,菜鸡RyeCatcher又想起来了被毒瘤题支配的恐惧 今天比较好玩,还是ljy提醒才发现文件夹里有题面...不知道外面的人什么时候才发现 看完了题面,又回到了雅礼啥题也不会写的感觉 T1 ...
- [NOIP2018模拟赛10.23]发呆报告
闲扯 考场看了眼题目感觉很难,一个小时敲完了所有暴力...嗯然后就在那里发呆什么事也没做 T3考场上把数据结构想了个遍都不会完成1操作,现在看这种思路其实之前也接触过... 比较玄学的一件事情就是T1 ...
- [NOIP2018模拟赛10.20A]挂分报告
闲扯 先看看了B组,T1 ZROI刚好讲过一个性质原根一般很小的,直接枚举;T2一眼二分然后似乎状压 T3没看 然后上来A组题,T1 flow这名字...网络流?! T1题面非常的社会主义核心价值观, ...
- [NOIP2018模拟赛10.25]瞎搞报告
闲扯 最近有点颓,都修到好晚,早上起来和吔shi一样难受 忍着困意把题面看完,发现啥也不会,又是一场写暴力的模拟赛 T1发现似乎可以DP,顺手码了个 T2像个最小瓶颈路板子,但是只做过N^2算法的.. ...
随机推荐
- Linux中的libc和glibc
现在centos6.8-x64系统里的c标准库已经成了glibc,glibc取代了libc,c标准库的位置在/lib64/libc.so.6 以下为转载 一.libc库 Linux平台提供的C标准库包 ...
- mysql 原理 ~ redo
一 简介:redo log二 文件 ib_logfile0 ib_logfile1 两个redo log 默认为一组 循环覆盖写入三 相关参数 innodb_log_file_size=256 ...
- mysql 8.0 ~ 存储和账户
一 简介:关于存储数据文件的改进二 数据文件: 1合并了存储数据库对象信息的事务性数据字典 1 相关文件等存储引擎层存储元数据文件已消失,只有ibd文件,元数据存储在数据字典表 ...
- linux 备份与恢复
- MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)
先建立一张 m 表 mysql> create table m ( -> mid int, -> hid int, -> gid int, ), -> matime da ...
- 20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题
20165237 2017-2018-2 <Java程序设计>第十周考试补做及编程题 知识点 1.链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用 . ...
- Python学习-环境搭建(IronPython)
一.IDE环境 VS2013 下安装 PTVS 2.2.2 VS 2013 VS2015 已经集成了Python的开发环境 二.安装 IronPython 下载地址:http://ironpytho ...
- 【php】下载站系统Simple Down v5.5.1 xss跨站漏洞分析
author:zzzhhh 一. 跨站漏洞 利用方法1,直接在搜索框处搜索<script>alert(/xss/)</script>//',再次刷新,跨站语句将被 ...
- windows下安装MySql + navicat(图形化界面)
MySQL安装过程参考:https://www.cnblogs.com/ayyl/p/5978418.html navicat图形化界面安装过程参考:https://www.cnblogs.com/l ...
- NandFlash和iNand【转】
转自:https://www.cnblogs.com/PengfeiSong/p/6380447.html nand 1.nand的单元组织:block与page(大页Nand与小页Nand)(1)N ...