做题纪要 #1

news/2024/7/7 21:04:44/文章来源:https://www.cnblogs.com/int-R/p/-/solutionset1

7.3

一直想挑个好日子开始写做题纪要,防止自己太颓,但是咕了很久。

今天也并不是什么好日子,只是不想再咕了。

不是怎么突然就高二了啊啊啊啊啊。

CF1552H Guess the Perimeter

以为只有 \(4\) 次询问次数会有什么逆天不平凡做法,结果还是二分,不过还是比较牛。

将原本一个格点看做一个格子,设矩形长为 \(a\),宽为 \(b\)

先询问所有格子求矩形面积 \(s\)。然后考虑只询问纵坐标为奇数的格子,设返回值为 \(k\)。当 \(b\) 为奇数时,\(k=\dfrac{b\pm 1}{2}\times a\),又有 \(s=a\times b\),可得 \(a=\left\vert s-2k \right\vert\)。尽管 \(b\) 为偶数时没法直接做出,但是可以给我们一定启发。

我们将 \(b\) 分解成 \(2^m\times r(2\nmid r)\) 的形式,设 \(k_i\) 为只询问纵坐标 \(\bmod 2^i=1\) 的格子的返回值,那么 \(a=\left\vert k_m-2k_{m+1} \right\vert\)。于是现在要求 \(m\),直接二分即可,当 \(k_i\times 2^i=s\)\(i\leq m\)

先查询一次 \(s=k_0\),剩下二分一下刚好 \(3\) 层,同时由于只在 \([1,7]\) 中二分了 \(3\) 层可以保证 \(k_{m+1}\) 也询问过。注意由于一开始格点转成了格子所以最后要减去四个角。

点击查看代码
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
int ans,t[10],a,b;
inline int query(int B)
{cout<<"? "<<(200+B-1)/B*200<<endl;for(int i=1;i<=200;i+=B)for(int j=1;j<=200;++j)cout<<i<<' '<<j<<' ';cout<<endl;int k;cin>>k;return k;
}
signed main()
{t[0]=query(1);int l=1,r=7;while(l<=r){int mid=(l+r)>>1;t[mid]=query(1<<mid);if(t[mid]*(1<<mid)==t[0]) ans=mid,l=mid+1;else r=mid-1;}b=abs(t[ans]-2*t[ans+1]),a=t[0]/b;cout<<"! "<<(a+b)*2-4<<endl;return 0;
}

CF1610G AmShZ Wins a Bet

结论是每次删去的一定是一对匹配的括号,不然可以通过调整法证明不会变劣。

然后只需要从后往前贪心,一个点最多从两个方向转移过来。维护只考虑 \(i\) 后缀的情况下,操作后字典序最小的字符串,倍增一段的哈希值,然后比较两个字符串字典序只需要跳到第一个哈希值不一样的位置。时间复杂度 \(O(n\log n)\)

点击查看代码
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<string.h>
#define ll long long
using namespace std;
const int MAXN=3e5+10,mod=1e9+97;
string s;int n,t[MAXN],top;ll b[20];
int dep[MAXN],f[MAXN][20],g[MAXN][20];
inline bool cmp(int x,int y)
{for(int i=19;~i;--i){if(!f[x][i]||!f[y][i]) continue;if(g[x][i]==g[y][i]) x=f[x][i],y=f[y][i];}if(!f[x][0]||!f[y][0]) return dep[x]<=dep[y];return g[x][0]<g[y][0];
}
signed main()
{
#ifndef ONLINE_JUDGEfreopen("in.in","r",stdin);freopen("out.out","w",stdout);
#endifcin.tie(0),cout.tie(0);ios::sync_with_stdio(0);b[0]=3;for(int i=1;i<20;++i)b[i]=b[i-1]*b[i-1]%mod;cin>>s;n=s.size(),s=' '+s;for(int i=n;i;--i){dep[i]=dep[f[i][0]=i+1]+1,g[i][0]=s[i]-'(';for(int j=1;j<=__lg(dep[i]);++j)f[i][j]=f[f[i][j-1]][j-1],g[i][j]=(g[f[i][j-1]][j-1]*b[j-1]+g[i][j-1])%mod;if(s[i]==')'){t[++top]=i;continue;}if(!top) continue;int R=t[top]+1;--top;if(cmp(i,R)) continue;dep[i]=dep[R];memcpy(f[i],f[R],sizeof(f[i]));memcpy(g[i],g[R],sizeof(g[i]));}for(int p=1;f[p][0];p=f[p][0])cout<<(char)(g[p][0]+'(');cout<<'\n';return 0;
}

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

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

相关文章

Python预测体重变化:决策树、tf神经网络、随机森林、梯度提升树、线性回归可视化分析吸烟与健康调查数据

全文链接:https://tecdat.cn/?p=36648 原文出处:拓端数据部落公众号 在当今的数据驱动时代,机器学习算法已成为解析复杂数据集、揭示隐藏模式及预测未来趋势的重要工具。特别是在医疗健康领域,这些算法的应用极大地提升了我们对疾病预防、诊断及治疗方案的理解与制定能力。…

Nuxt3 的生命周期和钩子函数(九)

摘要:本文介绍了Nuxt3中与Vite相关的五个生命周期钩子,包括vite:extend、vite:extendConfig、vite:configResolved、vite:serverCreated和vite:compiled,展示了如何在每个钩子中扩展Vite配置、读取配置、添加中间件和处理编译事件。每个钩子都有详细的描述和示例代码,帮助开…

地理信息科学:生态保护的智慧经纬

在地球这颗蓝色星球上,每一片森林的呼吸、每一条河流的流淌,都是生命交响曲中不可或缺的音符。而地理信息科学(GIS),正是我们手中解读自然密码、护航生态平衡的精密仪器。今天,让我们深入探讨GIS如何在生物多样性保护和生态系统管理中发挥其不可替代的作用。 🌱 GIS——…

软连接与硬链接

(1)软链接(symbolic link) 创建命令:ln -s <target> <link_name>其中:<target> 是目标文件或目录的路径,可以是相对路径或绝对路径。<link_name> 是要创建的软链接的名称,可以是相对路径或绝对路径。特点:笔试面试填空题和简答题:软链接的特点…

pycharm导入第三方包出现红色波浪线或新建flask项目出现红色波浪线解决办法

设置 -> 项目结构(Project Structure) ,将site-packages设为源代码

开源软件开发平台哪家好?

低代码技术平台、开源软件开发平台哪家好?进行数字化转型,离不开低代码技术平台等软件产品的加持与助力。因为它更好操作、更灵活、易维护等优势特点突出,在推动企业实现流程化办公的过程中助力明显,作用大,深得客户喜爱。那么,低代码技术平台、开源软件开发平台哪家好?…

阿里云 SAE 助力修正商城 3 周内提升系统承载能力 20 倍,轻松应对春晚流量

修正技术团队迫切需要升级 APP 架构以应对即将到来的超高并发场景。这一挑战不仅是对技术的考验,更是对修正品牌实力的一次展示。为了应对这次巨大的技术挑战,修正技术团队选择与阿里云云原生团队合作,进行 APP 架构的升级。作者:赵世振、刘松伟、朱坪" 从了解阿里云 …

使用yum 命令安装 dotnet 6

如果是超级管理员账号root 登录 不需要加 sudo。 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpmsudo yum install dotnet-sdk-6.0sudo yum install dotnet-runtime-6.0 输入dotnet --info 查看 安装的 dotnet 版本

SpringCloud Alibaba Nacos 配置动态更新源码学习总结

众所周知,nacos两大核心功能,服务注册发现与动态配置 支持服务注册发现的有:Eureka、Consul、Zookeeper、Nacos 支持动态配置的有:Spring Cloud Config、Nacos、Apollo、Consul 像支持分布式的框架,必须得借用第三方服务,比如定时任务调度xxl-job,分布式事务seata,都分为…

实战篇——SQL注入sqli-labs-master靶场实战三

实战篇——SQL注入sqli-labs-master靶场实战(3) sqlmap基础用法 GET型:POST型:请求头注入(以User-Agent注入为例):爆库: python sqlmap.py -r C:\Users\yaogu\Desktop\sqlmap\request\1.txt --threads 10 --dbs爆表: python sqlmap.py -r C:\Users\yaogu\Desktop\sqlmap\r…

xshell终端显示乱码的处理方法

File -> Properties -> 终端, 编码切换为GBK2312 参考:https://www.cnblogs.com/my-first-blog-lgz/p/17337055.html

web前端应用性能指标测量工具有哪些?

接上一篇介绍前端性能指标的内容,本文主要总结下一般使用的性能测量工具。 1、可以借助 Gooogle 开源的 web-vitals 库来测量一些性能指标: import {onCLS, onINP, onLCP, onFCP, onFID, onTTFB} from web-vitals; onCLS(console.log); onINP(console.log); onLCP(console.lo…

web前端应用应该关注哪些性能指标?

作为一个有经验的前端开发工程师来说,关注性能是必不可少的一项日常工作,那么应该重点关注一些什么样的性能指标呢?其实主要还是从用户体验的角度来看,一般我们会从页面加载相关、交互相关方面入手。 原文:前端性能指标,一网打尽FCP:首次内容绘制 LCP:最大内容绘制 TTF…

解决Centos无法yum源的问题

1、安装yum依赖包,出现报错could not resolve host :mirrorlist.centos.org:unknown error 此时 #ping mirrors.aliyun.com 不通 一般是由于dns解析存在问题,cd /etc/resolv.conf 修改nameserver 改为114.114.114.114。重启网卡:systemctl restart network 再次 #ping mir…

数据万象盲水印 - AIGC的“保护伞”

近期AIGC的爆火让人们觉得AI似乎无所不能,打工人们已然将 AI 发展成了工作的一大助手,但同样也伴随着很多AI的受害者。一些专家、画家、学者们发现自己的“作品风格”正在被 AI “抄袭剽窃”。导语 近期AIGC的爆火让人们觉得AI似乎无所不能,打工人们已然将 AI 发展成了工作的…

VMware vSphere Tanzu部署_12_下载使用Tanzu-K8S工具

下载使用Tanzu-K8S工具Tanzu-K8S工具支持windows、linux、macoswindows下载安装tanzu-k8s工具访问命名空间内的链接到CLI工具链接将二进制文件复制到windows内的system32文件夹内linux下载安装tanzu-k8s工具 # 192.168.203.194这个IP地址替换为您环境下看到的IP地址 wget --no-…

流程表单设计器开源优势多 助力实现流程化!

流程表单设计器开源的优势特点在哪里?一起在本文中寻找答案吧。实现流程化办公是很多职场企业的发展目标。应用什么样的软件可以实现这一目的?低代码技术平台、流程表单设计器开源的优势特点多,在推动企业降本增效、流程化办公的过程中作用明显,是理想的软件平台。那么,流…

在Cocoa里玩转Dock图标

原文来自;https://cocoa.venj.me/blog/play-with-dock-icon/ 今天我们来看一看如何在Cocoa程序中自定义Dock图标。Dock图标的自定义主要包括四方面:加徽章(Badge) 换图标 隐藏和显示最小化时的图标徽章 增加自定义Dock菜单本文将对如何进行这四方面的自定义进行简单的介绍,…

VMware vSphere Tanzu部署_10_开启Tanzu功能

1.开启Tanzu功能 1.1. Tanzu开启的必要条件网络需要为vds网络或者nsx网络 esxi集群需要开启DRS和HA功能 需要配置Tanzu存储策略 需要部署有负载均衡(nsx或者haproxy或者nsx avi) 需要配置有Tanzu Kubernetes内容库1.2. 初始化Tanzu启用Tanzu功能选择tanzu网络为VDS网络选择需要…