OI 笑传 #12

news/2025/9/27 11:51:49/文章来源:https://www.cnblogs.com/hm2nsite/p/19114909

这次是 ABC424 423 的 DEF。

ABC424D

朴素状压即可。

code

Show me the code
#define psb push_back
#define mkp make_pair
#define ls p<<1
#define rs (p<<1)+1
#define rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define per(i,a,b) for( int i=(a); i>=(b); --i)
#define rd read()
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read(){ll x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
const int N=512;
vector<int> st[N];
void init(){}
string mmap[10];
int dp[10][N];
void solve(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>mmap[i];}memset(dp,0x3f,sizeof dp);for(int i=0;i<(1<<m);i++){bool isok=1;int cnt=0;for(int k=0;k<m;k++){if(mmap[1][k]=='.'&&((i>>k)&1)){isok=0;break;}if(mmap[1][k]=='#'&&!((i>>k)&1))cnt++;}if(!isok)continue;dp[1][i]=cnt;// cout<<"1 st "<<i<<' '<<cnt<<'\n';}for(int i=2;i<=n;i++){for(int st1=0;st1<(1<<m);st1++){bool isok=1;for(int k=0;k<m;k++){if(mmap[i-1][k]=='.'&&((st1>>k)&1)){isok=0;break;}}if(!isok)continue;for(int st2:st[st1]){int cnt=0;bool isok1=1;for(int k=0;k<m;k++){if(mmap[i][k]=='.'&&((st2>>k)&1)){isok1=0;break;}if(mmap[i][k]=='#'&&!((st2>>k)&1))cnt++;}if(!isok1)continue;dp[i][st2]=min(dp[i-1][st1]+cnt,dp[i][st2]);}}}int ans=0x3f3f3f3f;for(int i=0;i<(1<<m);i++){ans=min(dp[n][i],ans);}cout<<ans<<'\n';return ;
}
int main(){int T;cin>>T;for(int i=0;i<(1<<7);i++){for(int j=0;j<(1<<7);j++){bool isok=1;for(int k=1;k<7;k++){if(((i>>k)&1) && ((j>>k)&1) && ((i>>(k-1))&1) && ((j>>(k-1))&1) ){isok=0;break;}} if(!isok)continue;st[i].push_back(j);}}while(T--){// init();solve();}return 0;
}

ABC424E

初见想到了用堆模拟维护同类长度木棍集合的做法,时间复杂度应该是 \(O(n\log n^2)\),但是竟然还会超时。

可能是堆的常数问题?

还有一种不用堆的思路是我们首先确定让集合中最长的木棍长度不超过 \(l\) 的最小操作数量是多少,继承上面维护木棍集合的做法可以二分答案。时间复杂度 \(O(n\log n^2)\)

这样得到的 \(l\) 是一个精确的 \(l\),也就是其中必然存在一个集合经过 \(2^k\) 次拆分后所有木棍的长度都正好是 \(l\),且是其它所有堆中最大的,总的操作次数也小于 \(K\)。而将这些木棍再分一半之后所需要的总操作次数就

这样,剩下的那些操作一定只会对这个集合操作,直接二分拆好之后顺着找到第 \(X\) 个即可。

code

Show me the code

ABC424F

考虑把连接上的端点赋上相同的随机值。这样两个点可以连的情况就是没有相同的随机值在这根线两侧。

判重复出现可以用异或解决。于是直接树状数组维护区间异或判断即可。

code

Show me the code

ABC423D

用几个堆模拟过程即可。

code

Show me the code

ABC423E

线段树上合并区间即可,类似一个分治。

简单推下式子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spatial芯片设计语言 学习笔记

Spatial 芯片设计语言是斯坦福 PPL 研究组在特定领域(高级硬件/加速器设计)的研究成果和实践平台。 斯坦福 PPL 是斯坦福计算机科学系下的一个研究实验室,全称是 Pervasive Parallelism Laboratory 普及并行实验室。…

非诚勿扰 —— 大龄单身男,找人生合伙人,有意者邮件联系

非诚勿扰 —— 大龄单身男,找人生合伙人,有意者邮件联系89年辽宁人,单身,目前在八达岭长城脚下工厂务工,无车无房无存款,工作也不算太稳定。为人执拗,真诚,社会经验及阅历极少,赚钱能力极差,诚招人生合伙人(…

soul 这款APP太差劲了,天天都有婚介加我,怎么个事情,还能不能好好的解决解决个人问题了

soul 这款APP太差劲了,天天都有婚介加我,怎么个事情,还能不能好好的解决解决个人问题了本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这…

【C++】23. C++11(上) - 教程

【C++】23. C++11(上) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

kali2025搭建ARL灯塔系统

ARL灯塔详细安装教程ARL灯塔详细安装教程 安装配置docker apt-get update apt install docker.io apt install docker-compose如果出现以下报错请再运行一遍,或者更换镜像源然后还需要配置国内的docker加速,可以网上…

局域网内的网站建设优化营商环境工作开展情况汇报

安装selenium 打开命令控制符输入&#xff1a;pip install -U selenium 火狐浏览器安装firebug&#xff1a;www.firebug.com&#xff0c;调试所有网站语言&#xff0c;调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件&#xff0c;实现简单的浏览器操 作的录制与回…

单片机 -- USART总线 - 实践

单片机 -- USART总线 - 实践2025-09-27 11:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

实用指南:AI 术语通俗词典:LLM(大语言模型)

实用指南:AI 术语通俗词典:LLM(大语言模型)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

平面电商网站建设东莞企业营销型网站策划

一&#xff0e;代码规范和建议 避免Update LateUpdate等函数内频繁的GC Alloc&#xff0c;避免在Update和LateUpdate内有以下操作&#xff1a; 调用GetComponet() 调用FindObjectsOfType() 使用GameObject.Tag和GameObject.Name 等等其他有堆内存分配的操作 避免频繁调用T…

一个空间可以放两个网站吗简历怎么制作网站

GPADC 模块介绍 GPADC 是 12bit 采集精度的模数转换模块&#xff0c;支持 4 路通道&#xff0c;模拟输入范围 0-1.8v&#xff0c;最高采样率 1MHZ&#xff0c;并且支持数据比较&#xff0c;自校验功能&#xff0c;同时工作于可配置的四种工作模式&#xff1a; Single mode&a…

java学习 2025-9-27

📅 学习日志 2025-9-27 Java注释单行注释:// comment多行注释:/* * comment1 * comment2 */文档注释:/** * comment1 * comment2 */阿弥陀佛:数据类型String:(似乎不是数据类型而是类,类似还有Byte等)大小写…

揭秘JUC:volatile与CAS,并发编程的两大基石

揭秘JUC:volatile与CAS,并发编程的两大基石JUC(java.util.concurrent)并发包,作为Java语言并发编程的利器,由并发编程领域的泰斗道格利(Doug Lea)精心打造。它提供了一系列高效、线程安全的工具类、接口及原子…

题解:P11667 [USACO25JAN] Astral Superposition B

题解:P11667 [USACO25JAN] Astral Superposition B 发一篇之前在luogu上没发出去的题解(考USACO时的考场思路+代码) 题意理解每颗星星要么消失,要么向右移动 A 像素,并且向下移动 B 像素 (0≤A,B≤N)也就是行(…

【项目实战 Day7】springboot + vue 苍穹外卖架构(微信小程序 + 微信登录模块 完结)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:Pytorch框架笔记

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设服务标准ui网页界面设计素材

文章目录 一、stack的使用1.stack的介绍2.stack的使用 二、queue的使用1.queue的护额晒2.queue的使用 三、stack和queue相关算法题1.最小栈2.栈的压入、弹出序列3.逆波兰表达式4.两个栈实现一个队列5.用两个队列实现栈6.二叉树的层序遍历1.双队列2.用一个变量levelSize去控制 7…

北极通讯网络题解(做题记录)

北极通讯网络题解(做题记录) 前言 本文以一道 Kruskal 的好题实例来讲一下 Kruskal 的过程,对于初学 Kruskal 的OIer们有很大的帮助。 luogu 相似题:P1991 无线通讯网。 题目简述 有 n 座村庄,每座村庄的坐标用一对…

如何在局域网中做网站wordpress怎样发布时间

SpringMVC 的入门 1环境搭建 1.1.创建工程 1.2.添加web支持 右键项目选择Add framework support... 2.添加web支持 ​ 3.效果 注意&#xff1a; 不要先添加打包方式将web目录要拖拽到main目录下&#xff0c;并改名为webapp 1.3.pom.xml <?xml version"1.0&q…

elasticsearch安装插件 - 实践

elasticsearch安装插件 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

个人学习——前端react项目框架

文件作用 package.json npm脚本部分"scripts" 项目启动与打包"dev": "vite" 启动 开发环境,开启本地服务器,支持热更新。 用法:npm run dev "build": "tsc &&…