10.29-10.30Test

查看请点个赞

转载请注明出处(不然)

题目 描述 做法
\(BSOJ5161\) 从小到大放入\(n\)个数,每次他可以覆盖没被覆盖且小于等于自己的数,求每个数覆盖个数 无脑模拟
\(BSOJ5162\) 给出一个有向图,每一轮可以覆盖任意两点不可到达的点集,求最少几轮覆盖完 缩点后\(DAG\)上\(DP\)
\(BSOJ5163\) 动态加边,多次询问\(A\rightarrow B\)的最大边最短路径 \(LCA\)+暴力\(or~LCT\)维护\(Mst\)
\(BSOJ5169\) 求\([L,R]\)中质数和两质数乘积的个数 魔改线性筛
\(BSOJ5170\) 每个点可以得到钥匙,每条边有钥匙限制,求\(1\rightarrow n\)最短路 状压分层+最短路(\(BFS\))
\(BSOJ5171\) 过长 考虑算出子树内\(a\)的\(d1,d2,d3,cnt\),算出字数外\(b\)的\(u1,u2\),再分类讨论

\(\text{Day1}\)

\(T1\)

无脑模拟

\(T2\)

先缩点,那么块内的点不能同时选

对于\(DAG\),我们考虑答案就是把块当做\(\text{size}\)长的链的最长路

\(\displaystyle{f_x=\max\{f_y\}+\text{size}_x}\)

\(T3\)

小A得了忧郁综合症,小B正在想办法开导她。

机智的小B决定陪着小A玩游戏,他从魔法的世界里变出一张无向联通图,每条边上都有边权。小B定义一条路径的权值为所有经过边中的最大权值,小A则定义两点的最短路径为所有路径中权值最小的路径权。

每次小A先选出两个点m1,m2,然后小B选出两个点b1,b2,计算出它们的最短路径m,b,然后小B会拿出两堆灵魂宝石,一堆有m个,另一堆有b个。然后小A先从一堆中选出若干个灵魂宝石拿走,接下来小B重复同样的操作,如此反复,直到取走最后一颗灵魂宝石,然后取走最后一颗宝石的人获胜。

小B认为这样游戏太简单,于是他会不定期向这张图上加上一些边,以增大游戏难度。

小A具有预知未来的能力,她看到了自己和小B在未来游戏中的选择,以及小B增加的边。现在对于每次游戏,小A想知道自己是否存在必胜的方法。但是预知未来已经消耗了她太多精力,出于疲惫她只好找到了你。

发现这道题\(Add\)操作很少,考虑每次暴力

我们先\(Kruskal\)建出\(Mst\)

每次加入\(A\rightarrow B:V\)这条边,

若\(V\ge\)原来树上路径\(A\text{~}B\)上最大值,则不管

若\(V<\)原来树上路径\(A\text{~}B\)上最大值,则删去那个最大值,加入这条边

每次重构\(ST\)表,查询就是树上路径\(A\text{~}B\)上最大值比较一下即可

\(Tip:\)\(ST\)表只需从\(A\)或\(B\)中深度较小的向下\(dfs\)重构,因为上面的形态不会改变

inline void Findmax(re int x,re int y,re int fa,re int&pos,re int&flag){
re int i;re ll maxx=-INF;flag=0;
while(x!=fa){
for(i=h[x];i;i=e[i].next)if(e[i].to==*dp[x]){if(del[i])continue;if(maxx<e[i].v){maxx=e[i].v;flag=1;pos=i;}}
x=*dp[x];
}
while(y!=fa){
for(i=h[y];i;i=e[i].next)if(e[i].to==*dp[y]){if(del[i])continue;if(maxx<e[i].v){maxx=e[i].v;flag=2;pos=i;}}
y=*dp[y];
}
} (flag&1)?dfs_ST(y,*dp[y],dep[y]):dfs_ST(x,*dp[x],dep[x]);

\(\color{blue}{\text{Code}}\)

\(\text{Day2}\)

\(T1\)

动一下线性筛就可以了

inline void Prime(void){
re int i,j;
for(i=2;i<=maxx;++i){
if(!vis[i])pri[++*pri]=i;
for(j=1;j<=*pri;++j){
if(i*pri[j]>maxx)break;
vis[i*pri[j]]=(!vis[i])?2:1;
if(!(i%pri[j]))break;
}
}
for(i=2;i<=maxx;++i)sum[i]=sum[i-1]+(!(vis[i]&1));
}

\(T2\)

状压钥匙的状态,用状态分层,跑最短路即可

\(T3\)(JZOJ5460)

考虑记录\(6\)个值

\(d1_x/d2_x/d3_x:x\)子树内\(a\)的最大/严格次大/严格第三大

\(man_x\)表示\(x\)子树内最大值唯一否

\(u1_x/u2_x:x\)子树外\(b\)的最大/严格次大

\(ans=\begin{cases}d2_x&u1_x=0\\d1_x&man_x=1\\d1_x&d2_x+u1_x>d1_x\\d2_x+u1_x&d2_x+u1_x<d1_x\\\max\{d2_x+u2_x,d3_x+u1_x\}&d2_x+u1_x=d1_x\end{cases}\)

求这六个量的过程(改\(skr\)人)

inline void dfs(re int x,re int prt){//求d1,d2,d3,man
re int i,y;fa[x]=prt;
d1[x]=a[x];d2[x]=-INF;d3[x]=-INF;dl1[x]=b[x];dl2[x]=-INF;
cntd[x]=1;
for(i=h[x];i;i=e[i].next){
y=e[i].to;if(prt==y)continue;
dfs(y,x);
if(d1[x]<d1[y]){
cntd[x]=cntd[y],d3[x]=d2[x];d2[x]=d1[x];d1[x]=d1[y];//严格次大值/第三大值
}
else if(d1[x]==d1[y])cntd[x]+=cntd[y];
else if(d2[x]<d1[y]){d3[x]=d2[x];d2[x]=d1[y];}
else if(d3[x]<d1[y]&&d1[y]!=d2[x])d3[x]=d1[y];
if(d2[x]<d2[y]&&d2[y]!=d1[x]){d3[x]=d2[x];d2[x]=d2[y];}
else if(d3[x]<d2[y]&&d2[y]!=d2[x])d3[x]=d2[y];
if(d3[x]<d3[y]&&d3[y]!=d2[x])d3[x]=d3[y];
if(dl1[x]<dl2[y]){dl2[x]=dl1[x];dl1[x]=dl2[y];}
else if(dl2[x]<dl2[y]&&dl2[y]!=dl1[x])dl2[x]=dl2[y];//只求严格次大值
if(dl1[x]<dl1[y]){dl2[x]=dl1[x];dl1[x]=dl1[y];}
else if(dl2[x]<dl1[y]&&dl1[y]!=dl1[x])dl2[x]=dl1[y];//只求严格次大值
}
if(cntd[x]>1)man[x]=1;
}
inline void Change(re int x){//求u1,u2
re int i,j,pre=0,y,tim=1;tot=0;d[++tot]=(z){x,u1[x]};d[++tot]=(z){x,u2[x]};
d[++tot]=(z){x,b[x]};
for(i=h[x];i;i=e[i].next){
y=e[i].to;if(fa[x]==y)continue;
d[++tot]=(z){y,dl1[y]};d[++tot]=(z){y,dl2[y]};
}
sort(d+1,d+tot+1);
for(i=h[x];i;i=e[i].next){
y=e[i].to;if(fa[x]==y)continue;
j=1;tim=1;pre=INF;u1[y]=u2[y]=-INF;
while(tim<=2){
for(;j<=tot;++j)if(d[j].pos!=y&&d[j].v!=pre)break;
if(j>tot)break;
if(tim==1)u1[y]=d[j].v;
else u2[y]=d[j].v;
++tim;pre=d[j].v;
}
}
for(i=h[x];i;i=e[i].next){y=e[i].to;if(fa[x]==y)continue;Change(y);}
}

10.29-10.30Test的更多相关文章

  1. 山东理工大学第七届ACM校赛-飞花的线代 分类: 比赛 2015-06-26 10:29 10人阅读 评论(0) 收藏

    飞花的线代 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 飞花壕的线代一直非常的壕(好),线代考试每次都是全班第一.一次,飞花壕在预习 ...

  2. 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox

    [源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...

  3. 【Selenium】【BugList9】windows环境,fp = open("./"+ time.strftime("%Y-%m-%d %H:%M:%S") + " result.html",'wb'),报错:OSError: [Errno 22] Invalid argument: './2018-09-05 10:29:32 result.html'

    [代码] if __name__=="__main__": suite = unittest.TestSuite() suite.addTest(Baidu("test_ ...

  4. 10.29 正睿停课训练 Day11

    目录 2018.10.29 正睿停课训练 Day11 A 线段树什么的最讨厌了(思路 DFS) B 已经没有什么好害怕的了(差分 前缀和) C 我才不是萝莉控呢(DP 贪心 哈夫曼树) 考试代码 A ...

  5. 第17次Scrum会议(10/29)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/29 17:20~17:42,总计22min.地点:东北师 ...

  6. 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...

  7. mybatis-plus的Could not set property 'updateDate' of 'class com.example.pojo.User' with value 'Fri Jul 24 10:29:39 CST 2020' Cause: java.lang.IllegalArgumentException: argument type mismatch解决方案

    按照官网在写mybatis-plus的自动填充功能一直报错,发现官网的解说不全,数据库是datetime类型,java程序又是date,类型不匹配 org.mybatis.spring.MyBatis ...

  8. 2021.10.29 数位dp

    2021.10.29 数位dp 1.数字计数 我们先设数字为ABCD 看A000,如果我们要求出它所有数位之和,我们会怎么求? 鉴于我们其实已经求出了0到9,0到99,0到999...上所有数字个数( ...

  9. 2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS)

    2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS) 题意: 给一张n*n的图,起点为A,终点为 B,求从A到B转弯次数最少为多少. 分析: 是否存在 ...

  10. 2018.10.29 洛谷P4129 [SHOI2006]仙人掌(仙人掌+高精度)

    传送门 显然求出每一个环的大小. Ans=∏i(siz[i]+1)Ans=\prod_i(siz[i]+1)Ans=∏i​(siz[i]+1) 注意用高精度存答案. 代码: #include<b ...

随机推荐

  1. C语言基础知识---认识C语言

    2019.11.09 秋风 晴 最近一直在搞一套LoRa算法.总算有点效果了.心感慰藉(可能用错词语.但是也不管了) 初学者如何理解C语言? 无需刻板理解,笔者常用一个这样的例子助学生理解:法国人和法 ...

  2. 【leetcode】589. N-ary Tree Preorder Traversal

    题目: Given an n-ary tree, return the preorder traversal of its nodes' values. For example, given a 3- ...

  3. C# vb .net实现翻转特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的翻转特效效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  4. iOS - FlexBox 布局之 YogaKit

    由于刚开始的项目主要用的H5.javaScript技术为主原生开发为辅的手段开发的项目,UI主要是还是H5,如今翻原生.为了方便同时维护两端.才找到这个很不错的库. FlexBox?听起来像是一门H5 ...

  5. node连接Mysql报错ER_NOT_SUPPORTED_AUTH_MODE

    报错信息 本人系统安装的是mysql-installer-community-8.0.18.0.msi这个版本,然后我本地使用node-mysql去连接数据库. test.js文件 var mysql ...

  6. 安装仪表盘控件Iocomp会遇到的几个常见问题

    相信从事HMI和自动化开发专业的小伙伴在使用工业仪表盘和图表控件时,都很熟悉怎么安装和操作Iocomp产品(毕竟它功能太强大了,基本人手一份的节奏),但是小编想肯定还是有很多和小编一样的入门的伙伴在安 ...

  7. Synchronized可重入锁分析

    可重入锁又称递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提是锁对象必须是同一对象或者class), 不会因为之前已经获取过还没实方而发生阻塞.即同一线程可执行 ...

  8. WPF弹出进度条

    环境:vs2015 ,.net 4.6 源码地址:https://pan.baidu.com/s/1FoujUMst1luomPf0ZfCLUQ 提取码:trzj 说明: 1.进度条是在winFrom ...

  9. 【RAC】 RAC For W2K8R2 安装--dbca创建数据库(七)

    [RAC] RAC For W2K8R2 安装--dbca创建数据库(七) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...

  10. centos7修改IP地址(静态)

    环境如下: 操作系统: CentOS-7-x86_64-DVD-1908.iso 步骤如下: 1. 查看网卡信息 ip a 2.编辑对应网卡的配置文件,我这里网卡是ens33,所以我修改的是文件  i ...