最后一个当然要模自己辣。

%%%Miemengsb

ZJ一下:

三道题没有一道会的,唯一的20还是T2输出$n/2$得的

咝……

T1一看,只会暴力。

T2一看,像是状压,但是我是$dpsb$,于是弃掉了。

T3一看,GP不会,于是又打了一个暴力。

结果:

和*一样。

42
Miemeng 0

00:00:18
20

00:00:37
0

00:00:53
20

00:00:53

这是TJ:

我GP不会,于是先咕掉了,吱。

T2

非常不会的时光倒流状压dp。

首先设$f_{i,s}$为时间为$i$,状态是$s$时是否可行。

然后我们发现一个神奇的性质……

当我们手玩一下性质时,就会发现所谓的拨动传递抵消是没有用的,如果两个拨动传递的时候抵消了,那么一定有上面的所有祖先全部被拨动了$2$次(也就是没有拨动)。

我们从末情况向前推,每次的操作就变成去掉一个点的影响,我们预处理出每个点在$i$秒后的影响以实现快速转移。

为什么从末情况向前推更加优呢?

因为每个点的影响时间是确定的(倒着),如果正向的话就可能需要枚举或是处理最后时间的情况。

这样就可以快乐的转移了

#include <iostream>
#include <cstring>
#include <cstdint>
#include <climits>
#include <cstdio>
#define V 35
#define N 111
#define LL long long using namespace std; LL pn,tp,ans=INT_MAX;
LL fa[N],aim[N],aimn,
g[V][V],dp[V][(1<<17)+V]; int main(){
#ifndef LOCAL
freopen("decoration.in" ,"r",stdin);
freopen("decoration.out","w",stdout);
#endif
cin.sync_with_stdio(false);
cin>>pn;
fa[1]=0;
for(int i=2;i<=pn;i++)
cin>>fa[i];
for(int i=1;i<=pn;i++){
cin>>aim[i];
if(aim[i]==1)
aimn|=1<<(i-1);
}
LL maxs=(1ll<<pn)-1;
for(int i=1;i<=32;i++){
for(int j=0;j<=pn;j++){
LL cnt=0,now=j,tot=pn-i;
while(cnt<=tot && now!=0){
cnt++;
g[i][j]|=1<<(now-1);
now=fa[now];
}
}
}
dp[pn+1][0]=1;
for(int i=pn;i>=1;i--){
for(int s=0;s<=maxs;s++){
if(!dp[i+1][s]) continue;
for(int k=1;k<=pn;k++)
dp[i][s^g[i][k]]|=dp[i+1][s];
dp[i][s]|=dp[i+1][s];
if(dp[i][aimn]){
cout<<pn-i+1<<endl;
return 0;
}
}
}
}

19-11-2-M的更多相关文章

  1. Update 19.11 for Azure Sphere

    今天,微软发布了面向Azure Sphere的19.11更新,其主要亮点就是加入了对开发工具Visual Studio Code和Linux开发环境的支持.具体来讲,本次更新包含3个部分: 1. Az ...

  2. HDU6029 Happy Necklace 2017-05-07 19:11 45人阅读 评论(0) 收藏

    Happy Necklace                                                                           Time Limit: ...

  3. hdu 1053 (huffman coding, greedy algorithm, std::partition, std::priority_queue ) 分类: hdoj 2015-06-18 19:11 22人阅读 评论(0) 收藏

    huffman coding, greedy algorithm. std::priority_queue, std::partition, when i use the three commente ...

  4. Let the Balloon Rise 分类: HDU 2015-06-19 19:11 7人阅读 评论(0) 收藏

    Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  5. Java每日一面(Part1:计算机网络)[19/11/25]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[2] 1.1Get请求和Post请求的区别 从三个层面来回答: 1.1.1 从HTTP报文层面: ​ Get请求将请求信息放在UR ...

  6. Java每日一面(Part2数据库)[19/11/28]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.如何设计一个关系型数据库 如上图,首先划分成两大部分: ​ 1.存储部分:类似一个文件系统,把数据存储到一个持久化设备中,如机械硬盘,固态等 ​ ...

  7. Java每日一面(Part1:计算机网络)[19/11/13]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[1] 1.1 HTTP简介 ​ HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议. ...

  8. Java每日一面(Part1:计算机网络)[19/11/02]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.TCP的滑动窗口 1.1 RTT和RTO的区别 ​ RTT:发送一个数据包到收到对应的ACK,所花费的时间 ​ RTO:重传时间间隔,TCP在发 ...

  9. JavaScript常用项目(更新至19.11.17)

    目录 项目一:鼠标拖动方块 项目二:网页显示键入字母 项目三:实现滚播图 项目四:   本地数据记事本 项目一:鼠标拖动方块 代码: <!DOCTYPE html> <html> ...

  10. 软件工程(FZU2015)赛季得分榜,第11回合(beta冲刺+SE总结)

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 增补作业 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分:b ...

随机推荐

  1. prettier包升级后vue项目运行报错

    今天用vue-cli新建vue项目的时候,发现项目怎么都跑不起来. 最后通过与以前项目作比较,发现prettier这个依赖的版本从原来的1.12.0升级成了1.13.1.我也不太清楚为什么升级后项目跑 ...

  2. 16-MySQL-Ubuntu-数据表的查询-分组与聚合(五)

    分组(group by)一般与聚合结合使用 (1)查询按性别分组 select gender from students group by gender; (2)查询按性别分组并统计每组的数量sele ...

  3. Spring 基于xml配置方式的事务(14)

    参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...

  4. Native API

    https://technet.microsoft.com/en-us/sysinternals/bb897447.aspx http://www.rohitab.com/discuss/topic/ ...

  5. vue axios简单配置

    参考:https://www.cnblogs.com/sophie_wang/p/7844119.html 1. 安装 npm install axios 2. main.js import axio ...

  6. 解决maven项目创建过慢的问题以及快捷键

    分别在创建项目时填入以下值: Name:archetypeCatalogValue:internal idea常用的快捷键 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+ ...

  7. Algo: maxSubArray vs. maxProduct

    这两个问题类似,都可利用动态规划思想求解. 一.最大连续子序列和 https://leetcode.com/problems/maximum-subarray/description/ https:/ ...

  8. Pipe进程之间的通信

    #_author:来童星#date:2019/12/11#Pipefrom multiprocessing import Process, Pipedef f(conn): conn.send([42 ...

  9. win10 mysql5.7忘记密码如何解决

    点击开始菜单,搜索cmd.exe,左击以管理员身份运行 操作之前先备份好数据库(切忌) C:\Users\Administrator>cd C:\Program Files\MySQL\MySQ ...

  10. VS2010-MFC(常用控件:树形控件Tree Control 下)

    转自:http://www.jizhuomi.com/software/203.html 前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件 ...