USACO 2024 Open Bronze铜组题解

迟到了一个月的题解......

Logical Moos:

啊这题放在铜组T1雀食有点BT......

首先,我们关注l前第一和r最后那两组。如果这俩有一个是true,那答案肯定也是true。

否则,在l和r外边的都是false。那我们就只用仔细看l和r中间的玩意儿。对于l和r中间的每一组,只要第一组和最后一组都是false,那结果肯定也是false。

所以:如果换掉的对最后结果木有影响,那就不管;如果有,就换。

对于true的查询,我们必须再次检查该段是否包含l这组的第一个false,以及r这组的最后一个false。如果不是,那么即使我们将其余部分替换为true,结果也将还是false。

对于false的查询,如果输入是false,结果将为false。

我们每次只需记录每组中最左的false和最右的false,复杂度\Theta (N+Q)

#include <bits/stdc++.h>
using namespace std;
string expr[maxn];
int group[maxn];
int main(){int N,Q;cin>>N>>Q;for(int i=0;i<N;i++)cin>>expr[i];int idx=0;for(int i=0;i<N;i++){if(expr[i]=="or")idx++;else{if(i%2==0)group[i]=idx;}}vector<int> first_false(idx+1,INF);vector<int> last_false(idx+1,-1);for(int i=0;i<N;i+=2){int g=group[i];if(expr[i]=="false"){if(first_false[g]==INF)first_false[g]=i;last_false[g]=i;}}int first_true=INF,last_true=-1;for(int i=0;i<=idx;i++){if(first_false[i]==INF){if(first_true==INF)first_true=i;last_true=i;}}while(Q--){int l,r;cin>>l>>r;--l;--r;string query;cin>>query;int gl=group[l],gr=group[r];if(first_true<gl || last_true>gr){cout<<(query=="true"?'Y':'N');continue;}if(query=="true")cout<<(first_false[gl]<l || last_false[gr]>r?'N':'Y');elsecout<<'Y';}return 0;
}

好长啊。。。

Walking Along a Fence:

我们用一个二维矩阵记录每个点沿栅栏的距离,我们按顺序读入栅栏,当我们这样做时,我们遍历栅栏上的每个点,在数组中标记每个点0,1,2,…;同时记录周长。由于篱笆最多访问每个点一次,时间复杂度为\Theta (L^2)

#include <bits/stdc++.h>
using namespace std;
const int MAX=200005;
struct loc{int x;int y;
}posts[MAX];
int perimeter,dist[1005][1005];
void walk(loc st,loc ed){diff.x=ed.x-st.x,diff.y=ed.y-st.y;int dis=abs(diff.x)+abs(diff.y);diff.x=diff.x/dis,diff.y=diff.y/dis;for(int i=0;i<dis;i++){dist[st.x][st.y]=perimeter;perimeter++;st.x=st.x+diff.x,st.y=st.y+diff.y;}
}
int main(){int N,P;cin>>N>>P;for(int i=0;i<P;i++)cin>>posts[i].x>>posts[i].y;for(int i=0;i<P;i++)walk(posts[i],posts[(i+1)%P]);for(int i=0;i<N;i++){int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;int p1=dist[x1][y1];int p2=dist[x2][y2];int ans=abs(p1-p2);ans=min(ans,perimeter-ans);cout<<ans<<endl;}return 0;
}

Farmer John's Favorite Permutation:

Farmer Nhoj????????????????????????????????????????????????????????????

Emmmmmmmmmm,\Theta (N!)暴力的话肯定是不行的。那怎么办呢?

我们会发现,不管怎么动,1,永远不会动。所以,1,必然是那个活到最后的人。h_{N-1}=1。否则直接不可以总司令然后走人。

如果不是-1,我们就把最后一个从h里踢出去,不管它。

那p的最小字典序一定满足p_1<p_N。接下来,我们会想:只有一组这样的p吗?

我们知道,h都是不同的,看起来,如果存在一些映射到h的p,p必然是唯一的。

大家可以手推一下,把h和p都算出来,可以发现这两点:

        1. 每个h里的元素都是不同的

        2. p结尾的数正好是从h里消失的两个。

所以,只要确定了p结尾的数,就可以得出整个p。

#include <bits/stdc++.h>
using namespace std;
int main(){int T;cin>>T;while(T--){int N;cin>>N;vector<int> h(N-1);for(auto &x:h)cin>>x;vector<bool> has(N+1);for(int x:h)has[x]=true;vector<int> not_has;for(int i=1;i<=N;i++){if(!has[i])not_has.push_back(i);}int cnt_one=count(h.begin(),h.end(),1);if(not_has.size()>2 || h.back()!=1 || (not_has.size()==2 && cnt_one!=2)){cout<<-1<<endl;continue;}vector<int> p(N);if(not_has.size()==1){p[0]=1;p[N-1]=not_has[0];}else{p[0]=not_has[0];p[N-1]=not_has[1];}int l=0,r=N-1;for(int i=0;i<N-1;i++){if(p[l]>p[r])p[++l]=h[i];elsep[--r]=h[i];}for(int i=0;i<N;i++)cout<<p[i];cout<<endl;}return 0; 
}

好了,以上就是本期的全部内容了。我们下期再见!\(^o^)/~

友情提示:本期的代码都有问题,请不要无脑Ctrl C+Ctrl V

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

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

相关文章

如何挂载img镜像以及lvm分区

上一章节&#xff0c;我在win10下利用qemu安装了一个aarch64的 kylin-server-v10的ISO系统镜像包。安装时将系统安装到了虚拟硬盘kylin-server-v10.img 里&#xff0c;现在有个需求&#xff0c;要读出kylin-server-v10.img中文件系统的内容。 通过fdisk命令可以看到 kylin-ser…

利用AI结合无极低码(免费版)快速实现接口开发教程,会sql即可,不需要编写编译代码

无极低码无代码写服务+AI实践 本次演示最简单的单表无代码增删改查发布服务功能,更复杂的多表操作,安全验证,多接口调用,自自动生成接口服务,生成二开代码,生成调用接口测试,一键生成管理界面多条件检索、修改、删除、查看、通用公共接口调用、通用无限级字典调用等后续…

web前端框架设计第四课-条件判断与列表渲染

web前端框架设计第四课-条件判断与列表渲染 一.预习笔记 1.条件判断 1-1&#xff1a;v-if指令&#xff1a;根据表达式的值来判断是否输出DOM元素 1-2&#xff1a;template中使用v-if 1-3&#xff1a;v-else 1-4&#xff1a;v-else-if 1-5&#xff1a;v-show&#xff08;不支…

生成式AI的情感实验——AI能否产生思想和情感?

机器人能感受到爱吗&#xff1f;这是一个很好的问题&#xff0c;也是困扰了科学家们很多年的科学未解之谜。虽然我们尚未准备好向智能机器赋予情感&#xff0c;但智能机器却已经可以借助生成式人工智能&#xff08;AI&#xff09;来帮助我们表达自己的情感。 自然情感表达 AI正…

Unity Toggle组件

Toggle Group组件 Allow Switch Off属性值为false时&#xff0c; 1&#xff0c;Toggle初始时默认会有一个被勾选&#xff08;ison为true&#xff09;&#xff0c;可以自己打勾指定 2&#xff0c;不能取消勾选 Allow Switch Off属性值为true时&#xff0c; 1&#xff0c;Toggl…

安达发|包装容器行业APS生产排程计划管理特点

在包装容器行业中&#xff0c;APS&#xff08;高级计划排程系统&#xff09;是企业实现生产自动化、信息化的重要组成部分。一个有效的APS生产排程计划管理对于提高生产效率、降低生产成本、保障交货期以及提升客户满意度具有至关重要的作用。以下是对包装容器行业APS生产排程计…

基于Springboot框架四川成都某大学教室自习室预约系统设计与实现 研究背景和意义、国内外现状

二、国内外现状 在国内外&#xff0c;教室和自习室预约系统作为高校信息化建设的重要组成部分&#xff0c;已经得到了广泛的关注和应用。不同国家和地区的高校在预约系统的建设和应用方面呈现出不同的特点和趋势。 在国内方面&#xff0c;随着高校信息化建设的不断深入&#…

麒麟系统下安装qt5.9.1后不能输入中文

引言 在虚拟机上安装麒麟系统后,安装了qt5.9.1,只能输入英文和数字不能输入中文注释,编译的程序也不能输入中文。 原因 安装后的麒麟系统自带搜狗输入法,原本可以输入中文,但是qt5.9.1缺少支持搜狗输入法的fcitx插件。所以qt5.9.1中不能输入中文。 解决方法 安装fcit…

MWeb Pro For Mac v4.5.9 强大的 Markdown 软件中文版

MWeb 是专业的 Markdown 写作、记笔记、静态博客生成软件&#xff0c;目前已支持 Mac&#xff0c;iPad 和 iPhone。MWeb 有以下特色&#xff1a; 软件下载&#xff1a;MWeb Pro For Mac v4.5.9 软件本身&#xff1a; 使用原生的 macOS 技术打造&#xff0c;追求与系统的完美结合…

【MySQL探索之旅】数据库设计以及聚合查询

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

RIP配置不求人:手把手教你配置RIP路由

#教育优质作者发文挑战赛# 大家好&#xff0c;今天给同学们介绍一下RIP基本功能相关配置 01、基本概念 RIP是一种基于距离矢量&#xff08;Distance-Vector&#xff09;算法的协议&#xff0c;它使用跳数&#xff08;Hop Count&#xff09;作为度量值来衡量到达目的地址的距离…

企业必看:几个在线文档编辑器天花板

在线文档编辑器是企业工作必不可少的工具&#xff0c;不仅能够帮助企业实现高效协作&#xff0c;还能提升文档管理的便捷性和安全性。在众多在线文档编辑器中&#xff0c;有几个工具因其出色的性能和广泛的应用而备受瞩目&#xff0c;成为了企业使用的热门选择。接下来&#xf…

Driver not loaded之记录Qt访问MySql的解决经历

对于这个问题的本质原因&#xff0c;我也搞不明白&#xff0c;所以记录的方法不一定对所有人行之有效。我的目的很简单&#xff0c;就是把数据库用起来&#xff0c;经过查找网上资料&#xff0c;最终把数据库跑起来了。因此记录如下&#xff1a; 1&#xff0c;出现这个问题是缺…

基于单片机钢琴电子节拍器系统设计

**单片机设计介绍&#xff0c;基于单片机钢琴电子节拍器系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机钢琴电子节拍器系统设计是一个综合性的项目&#xff0c;它结合了单片机编程、音频处理、用户界面设计等多个领域的…

Master节点快照回退遇到的容器不存在的问题

这次遇到的问题说起来有点扯&#xff0c;k8s集群出了点问题&#xff0c;kuboard无法访问&#xff0c;查看容器状态后&#xff0c;初始问题简单的以为是kuboard出问题了&#xff0c;理论上来说重新安装kuboard即可&#xff0c; 由此问题引发的系统bug&#xff0c;导致master节点…

探索Flutter混淆在提高应用安全性方面的作用

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

zabbix绑定钉钉进行通知,网页端添加JavaScript,无脑式操作

文章目录 前言一、编辑zabbix告警JavaScript脚本二、代码如下&#xff1a;编辑消息模板&#xff0c;自定义markdown格式的消息。 总结 前言 随着人工智能的不断发展&#xff0c;zabbix监控这门技术也越来越重要&#xff0c;一下进入正题。 一、编辑zabbix告警JavaScript脚本 没…

HarmonyOS实战开发-存储空间统计(仅对系统应用开放)

介绍 本示例通过应用程序包管理、应用空间统计与卷管理模块&#xff0c;实现了查看当前设备存储空间信息、所有安装的应用的存储信息、所有可用卷的存储信息的功能。 效果预览 使用说明&#xff1a; 1.主页面会展示当前设备存储使用的详细信息。 2.点击“应用”&#xff0c;…

身份证实名认证接口的价格一般是多少呢?基于PHP身份核验接口

身份证实名认证接口分为身份证二要素、三要素、三要素人像核验接口&#xff0c;被广泛的应用于婚恋、交友、电商等等一系列行业领域&#xff0c;身份证实名认证需要实时数据&#xff0c;对于数据源来说也需要可靠&#xff0c;那么&#xff0c;身份证实名认证的价格是不是很贵呢…

NetSuite Saved Search-当前库存快照查询报表(二)

之前第一篇文章我们说明了&#xff0c;如何利用Saved Search来制作一个能够显示批次物料与非批次物料的Lot信息以及On Hand在手数量的“当前库存快照查询报表”&#xff0c;但是当用户提出“我们能否再加上批次物料的效期”需求时&#xff0c;我们原有的Saved Search并不能达到…