\(\color{white}{\mathbb{失足而坠千里,翻覆而没百足,名之以:深渊}}\)


这场考试的时间分配非常不科学

开题试图想 \(t1\) 正解,一个半小时后还是只有暴力,特别惊慌失措

然后赶紧看 \(t2\),看题发现是个简单的线段树合并,没有多模样例,半个小时打完结论后发现能过样例,也没对拍就直接放下了

然后最后一个小时硬想 \(t3\),写了一个复杂度比较正确的网络流上去,发现有好多漏洞,然后一直调,最后考试结束的时候甚至暴力都没来得及打


A. Hunter

玄妙的概率题

如果从第几个猎人在第几轮死的概率考虑,发现很难维护,因为当前值的总和未知

一个很妙的方法是利用成比例的性质,可以计算出每一个猎人比第一个先死的概率,即 \(\displaystyle\frac{w_i}{w_1+w_i}\),那么总和+1即为第一个猎人死的期望


B. Defence

线段树合并的裸题,注意答案是 \(min(lmax+rmax,maxx)\)

还要注意每个点的法术可能有多个


C. Connect

数据范围特别小,一看是状压

题意可以理解为选取一条1到n的链,所有已选点集最多和链上的一个点相连

\(f[S][i]\) 表示已选集合为 \(S\),链上最后一个点是 \(i\) 的已选边权和的最大值

那么每次可以新加入一个点,延长链的长度

也可以新增一个集合,作为链旁边的点集

转移即可,最后用总边权减去即可

代码实现
#include<bits/stdc++.h>
using namespace std;
const int maxn=20,maxm=5e4+5;
const int inf=0xcfcfcfcf;
int n,m,cnt,hd[maxn],x,y,w,val[maxn][maxn],tot,limit,f[maxm][maxn],ans,sum[maxm],con[maxm][maxn],sta[maxn],tp;
int read(){
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;
ch=getchar();
}
while(isdigit(ch)){
x=x*10+ch-48;
ch=getchar();
}
return x*f; 博客园Logo
首页
新闻
博问
专区
闪存
班级 写随笔
我的博客
短消息
用户头像
我的博客
我的园子
账号设置
简洁模式
退出登录 返回主页
y_cx 博客园
首页
新随笔
联系
管理
订阅
订阅 随笔- 26 文章- 0 评论- 12 阅读- 864
noip模拟32 山高而青云冷,池深而蛟穴昏,行以慎步,援以轻身,名之以:落石 pic.png 开题发现 t1 80分特别好写,于是先写了
但是这个做法没有任何扩展性,导致一直没有往正解的方向想 t3
看见有点的坐标,以为是计算几何,于是写完 t1 打了个暴力就看 t2 了
但事实证明 t2 的难度实际上是最大的,这次题目难度的判断又出现了严重的失误
A. Smooth 观察 B=2 的情况,发现排好序两因子的次数递增是没有规律的
可以把两个因子都开个队列,每次队里是单调递增的,所以队首是最小值
每次取出所有队首中的最小值,即使下一个排名的光滑数
然后运用类似线性筛的东西给每个大于其最小质因子的数加入其乘质数的值
B. Six 首先,要肯定这道题状态只统计每个质因子出现了几次是不行的,比如第一次插入一个6,那么2和3都被标记出现一次,当另一个6来时,发现其因子共出现两次而不能加入序列导致判断出错 所以需要改进状态
那么对于6来说,不能加入的条件是出现过两个2,或两个3,或1个2或1个3
那么不妨记录状态时一对儿一对儿记,这样可以解决上面的尴尬问题
发现总状态数很多,但是有用状态很少,可以记录在 map 里进行离散 可以记忆化搜索,但是感觉不好理解,所以采用递推的写法,每次更新一层,把每层有用的状态放进 vector 里更新即可
代码实现
C. Walker 为什么又是解方程题…… 把式子展开,发现有 scale∗sin
,scale∗cos,dx,dy 四个未知数,选取两个点即可解出来
如果 n2 枚举可以保证正确性
但是每次随机两个值,多次循环后不对的概率会降到极低 解出 sin
,cos 的值后可以使用 acos 这个函数解出弧度值,注意正负性不确定需要用 sin 进行验证 又恐琼楼玉宇,高处不胜寒 标签: 考试
好文要顶 关注我 收藏该文
y_cx
关注 - 25
粉丝 - 19
0
0
« 上一篇: noip模拟31
» 下一篇: noip模拟33
posted @ 2021-08-07 21:21 y_cx 阅读(8) 评论(0) MD 编辑 收藏 举报
刷新评论刷新页面返回顶部
发表评论
编辑 预览 自动补全 退出 [Ctrl+Enter快捷键提交]
【推荐】百度智能云2021普惠上云节:新用户首购云服务器低至0.7折
【推荐】阿里云云大使特惠:新用户购ECS服务器1核2G最低价87元/年
【推荐】大型组态、工控、仿真、CAD\GIS 50万行VC++源码免费下载!
编辑推荐:
· [.Net] 进程间通信框架(基于共享内存)——SimpleMMF
· [.NET大牛之路 006] 了解 Roslyn 编译器
· 源码 | “@Value 注入失败”引发的一系列骚操作
· Redis挂了,流量把数据库也打挂了,怎么办?
· 五个 .NET 性能小贴士
大数据与数据科学实战课程-468x60-3
最新新闻:
· “中国短视频第一股”,为何上市以来一路狂跌?
· PS3 模拟器加入对 FSR 的支持
· WireGuard 宣布 Windows 下的内核模式实现 WireGuardNT
· 爆出惊天大瓜!阿里需要马云归来?
· 国际空间站捕捉到“颠倒闪电” 网友:有《流浪地球》那味儿了
» 更多新闻...
昵称: y_cx
园龄: 8个月
粉丝: 19
关注: 25
< 2021年8月 >
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11
搜索 常用链接 我的随笔
我的评论
我的参与
最新评论
我的标签 我的标签 考试(17)
游记(2)
学习笔记(1)
杂题(1)
每周讲题(1) 随笔档案 2021年8月(6)
2021年7月(11)
2021年6月(2)
2021年5月(3)
2021年4月(3)
2020年11月(1) 最新评论 1. Re:noip模拟31 %%%%%
--keen_z
2. Re:noip模拟30 %%%%%
---OMA-
3. Re:NOI2021 游记 %%%
--SDFZOI
4. Re:noip模拟29 %%%
---OMA-
5. Re:NOI2021 游记 %%%
--SpadeA261 阅读排行榜 1. NOI2021 游记(369)
2. noip模拟测试18(45)
3. noip模拟测试17(39)
4. noip模拟12(35)
5. 联赛测试2 3.25(25) 评论排行榜 1. NOI2021 游记(4)
2. noip模拟测试18(3)
3. noip模拟31(1)
4. noip模拟30(1)
5. noip模拟29(1) 推荐排行榜 1. noip模拟30(2)
2. noip模拟29(2)
3. noip模拟31(1)
4. 构造(1)
5. NOI2021 游记(1) Copyright 2021 y_cx
Powered by .NET 5.0 on Kubernetes }
struct Edge{
int nxt,from,to,val;
}edge[maxm];
void add(int u,int v,int w){
edge[++cnt].nxt=hd[u];
edge[cnt].to=v;
edge[cnt].from=u;
edge[cnt].val=w;
hd[u]=cnt;
return ;
}
void calc(int x){
tp=0;
while(x)sta[++tp]=(x%2),x>>=1;
for(int i=n+1;i>=1;i--)cout<<sta[i];
return ;
}
int main(){
n=read();
// calc(1);
// cout<<endl;
// calc(6),cout<<endl;
m=read();
for(int i=1;i<=m;i++){
x=read();
y=read();
w=read();
add(x,y,w);
add(y,x,w);
tot+=w;
val[x][y]=val[y][x]=w;
}
limit=(1<<n)-1;
for(int S=1;S<=limit;S++){
for(int i=1;i<=cnt;i++){
int u=edge[i].from;
int v=edge[i].to;
if((S&(1<<(u-1)))&&(S&(1<<(v-1))))sum[S]+=edge[i].val;
if((S&(1<<(u-1)))&&(!(S&(1<<(v-1)))))con[S][v]+=edge[i].val;
}
sum[S]/=2;
}
memset(f,0xcf,sizeof f);
f[1][1]=0;
for(int S=1;S<=limit;S++){
// calc(S);
// cout<<endl;
for(int i=1;i<=n;i++){
if(f[S][i]==inf)continue;
for(int j=hd[i];j;j=edge[j].nxt){
int v=edge[j].to;
if(S&(1<<(v-1)))continue;
// if(con[S^(1<<(i-1))][v])continue;
f[S|(1<<(v-1))][v]=max(f[S|(1<<(v-1))][v],f[S][i]+edge[j].val);
}
int SS=limit^S;
// if(S==1&&i==1)calc(SS),cout<<endl;
for(int T=SS;T;T=(T-1)&SS){
// if(S==1&&i==1)cout<<"ppp "<<T<<" ",calc(T),cout<<endl;
f[S|T][i]=max(f[S|T][i],f[S][i]+sum[T]+con[T][i]);
}
}
}
cout<<sum[limit]-f[limit][n];
return 0;
}

\(\color{white}{\mathbb{无可奈何花落去,似曾相识燕归来。}}\)

noip模拟33的更多相关文章

  1. noip模拟33[进阶啦啦啦]

    noip模拟33 solutions 不知道该咋说,这场考试其实是我这三四场以来最最最最最顺心的一场了 为啥呢?因为我这回思考有很多结果,得到了脑袋的回复 就是你想了半个小时就有了一点点头绪,那感觉就 ...

  2. Noip模拟33垫底反思 2021.8.8

    T1 Hunter 考场上没写$%p$挂了25分.也是很牛皮,以后打完过了样例一定要检查 因为样例太小了......很容易忘记%%%% 正解随便手模就出来了. 1 #include<bits/s ...

  3. 2021.8.8考试总结[NOIP模拟33]

    T1 Hunter 考场上一看期望直接状压拿了$45pts$跑了.结果正解只用$4$行? 把问题转化为一号猎人之前死的猎人数的期望加一. 期望的线性性. 对每个猎人$i$,$w_i+w_1$种情况中有 ...

  4. NOIP模拟 33

    苏轼三连一脸懵逼 然而既惨者就是没素质 T1是正解思路 然而因为直接从暴力修改过来并且忘了把求约数改成求质约数并且由于快速幂打的有缺陷等 没 有 A C ! 如 果 A C rank1就是俺的了! ( ...

  5. [NOIP模拟33]反思+题解

    又考了一次降智题…… 拿到T1秒出正解(可能是因为我高考数学数列学的海星?),分解质因数以后用等比数列求和计算每个因子的贡献.但是当时太过兴奋把最后的$ans \times =$打成了$ans +=$ ...

  6. 8.8考试总结(NOIP模拟33)[Hunter·Defence·Connect]

    无法逃避的是自我,而无法挽回的是过去. 前言 还算可以,不过 T1 少 \(\bmod\) 了一下挂了 25pts,T2 没看清题面挂了 27pts. 下回注意吧.. T1 Hunter 解题思路 感 ...

  7. [考试总结]noip模拟33

    连炸两场... 伤心... 第一个题目首先因为有期望坐镇,然后跳过... 然后第二个题目发现题目挺绕的,然后转化了一句话题意,然后..... \(\huge{\text{转化错了!!!!}}\) 然而 ...

  8. NOIP 模拟 $33\; \rm Connect$

    题解 状压 \(\rm DP\). 从 \(1\) 到 \(n\) 一共只要一条路径,那么就是一条链,只要维护一个点集和当前链的末尾就行. 设 \(\rm dp_{i,j}\) 为 \(i\) 的点集 ...

  9. NOIP 模拟 $33\; \rm Defence$

    题解 \(by\;zj\varphi\) 题意就是维护 \(\rm max\{01mx,01l+01r\}\) 就是最长连续的一段 \(0\),左右 \(0\) 区间的加和. 可以启发式合并,也可以直 ...

随机推荐

  1. Netty 源码分析系列(二)Netty 架构设计

    前言 上一篇文章,我们对 Netty做了一个基本的概述,知道什么是Netty以及Netty的简单应用. Netty 源码分析系列(一)Netty 概述 本篇文章我们就来说说Netty的架构设计,解密高 ...

  2. Adaptive AUTOSAR 学习笔记 12 - 通信管理

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 CM:Communicatio ...

  3. (数据科学学习手札126)Python中JSON结构数据的高效增删改操作

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一期文章中我们一起学习了在Python ...

  4. Java基础——类型转换注意事项及常见问题

    类型转换 由于Java是强类型语言,所以要进行有些运算的时候,需要用类型转换 低------------------------------------------------------------ ...

  5. mybatis动态sql总结

    前言 平时在开发中,针对动态sql这块目前是薄弱点,自己根据官网在对应项目边测试边写博客,此篇只是为了加深动态sql的熟练度,有不到之处敬请批评指正! 1.if 使用动态 SQL 最常见情景是根据条件 ...

  6. 那些 22 岁毕业做Android开发的人,他们 50 岁左右时的人生轨迹是怎样的?

    本人今年35了,已经干了14年程序员,是14年不是13年,因为我是专科毕业. 一直就是普普通通的程序员,特别纯的码农,从没做过管理岗位,并且很可能以后也是如此. 现在已经上有老下有小. 曾经在某著名互 ...

  7. 双非本科字节跳动Android面试经验和心得体会分享(已拿offer)

    新人报道,没有什么可分享的,就记录一些自己求职的体会和心得. 我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券.但是这也丝毫不值得骄傲,大家都知道:技术日新月异 ...

  8. Java多线程操作同一个对象,线程不安全

    Java多线程操作同一个对象 发现问题:多个线程操作同一资源的情况下,线程不安全,数据紊乱 代码: package multithreading; // Java多线程操作同一个对象 // 买火车票的 ...

  9. netty系列之:对聊天进行加密

    目录 简介 PKI标准 各类证书的后缀和转换 netty中启动SSL server netty中启动SSL client 总结 简介 在之前的文章中,我们讲到了怎么使用netty建立聊天室,但是这样的 ...

  10. Java文件和Java包结构

    Java中的包概念 Java中的包是封装一组类,子包和接口的机制.软件包用于: 防止命名冲突.例如,可以有两个名称分别为Employee的类,college.staff.cse.Employee和co ...