OI 笑传 #20

news/2025/10/18 23:47:50/文章来源:https://www.cnblogs.com/hm2nsite/p/19150323

我讨厌性质跟输入格式有关的东西。

20th


ARC208B

这题实现了三个版本,虽然说前两个是错的但是都是一遍写对,当练习玛丽了。

code

Show me the code
#define rd read()
#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)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 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;
}
void init(){return ;}
i64 da[1000];
i64 d[1000];
bool check(int n,i64 k,int mid){i64 res=0,lst=mid;for(int i=2;i<=n;i++){i64 nc=lst*2-1;res+=nc%lst;if(res>=k)break;lst=nc;}if(res<k)return 0;else return 1;
}
void solve(){int n,k; cin>>n>>k;i64 l=1,r=1e9;while(l<r){i64 mid=l+r>>1;if(check(n,k,mid)){r=mid;}else l=mid+1;}vector<i64> al;i64 res=0,lst=r;al.push_back(r);for(int i=2;i<=n;i++){i64 nc=lst*2-1;i64 bres=res;res+=nc%lst;if(res>=k){al.push_back(lst+k-bres);break;}else al.push_back(nc);lst=nc;}for(int i=1;i<=n-al.size();i++){cout<<1<<' ';}for(int v:al){cout<<v<<' ';}cout<<'\n';return ;
}
int main(){da[1]=1;da[2]=2;d[1]=d[2]=0;for(int i=3;i<=40;i++){da[i]=da[i-1]*2-1;d[i]=da[i]%da[i-1];d[i]=d[i-1]+d[i];}int T;cin>>T;while(T--){init();solve();}return 0;
}

CF1776F

轻量构造题。

code

Show me the code
#define rd read()
#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)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 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;
}
int ind[100];
struct ek{int u;int v;
}e[10000];
int ans[10000];
void init(){memset(ind,0,sizeof ind);return ;}
void solve(){int n,m;cin>>n>>m;for(int i=1;i<=m;i++){cin>>e[i].u>>e[i].v;ind[e[i].u]++;ind[e[i].v]++;}if(m==(n-1)*n/2){cout<<3<<'\n';for(int i=1;i<=m;i++){if(e[i].u!=1&&e[i].v!=1)ans[i]=1;}for(int i=1;i<=m;i++){if(e[i].u>e[i].v)swap(e[i].u,e[i].v);if(e[i].u==1&&e[i].v!=n)ans[i]=2;if(e[i].u==1&&e[i].v==n)ans[i]=3;}for(int i=1;i<=m;i++){cout<<ans[i]<<' ';}cout<<'\n';return ;}else{int tg=0;for(int i=1;i<=n;i++){if(ind[i]!=n-1){tg=i;break;}}for(int i=1;i<=m;i++){if(e[i].u!=tg&&e[i].v!=tg)ans[i]=1;else ans[i]=2;}cout<<2<<'\n';for(int i=1;i<=m;i++){cout<<ans[i]<<' ';}cout<<'\n';}
}
int main(){int T;cin>>T;while(T--){init();solve();}return 0;
}

CF1594D

有向边和无向边是等价的。

也打了一版错的代码,当复习 tarjan 三件套了。

code

Show me the code

ABC428C

对删除操作的处理。

code

Show me the code
#define rd read()
#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)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 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;
}
struct op{int l;int r;
}o[900000];
int cnt=0;
int main(){int q;cin>>q;int l=0,r=0;string s="";for(int i=1;i<=q;i++){int op;cin>>op;if(op==1){char p;cin>>p;s.push_back(p);if(p==')'){if(l==0)r++;else l--;}if(p=='('){l++;}cnt++;o[cnt].l=l;o[cnt].r=r;}if(op==2){s.pop_back();cnt--;l=o[cnt].l;r=o[cnt].r;}// cout<<l<<' '<<r<<'\n';if(r==l&&r==0)cout<<"Yes"<<'\n';else cout<<"No"<<'\n';}return 0;
}

ABC428D

完全平方数有类似倍数一样的前缀和性质,由此可以直接在得到值的范围后直接求出里面的完全平方数数量。

对值的范围的构造技巧。

code

Show me the code

ABC428E

树的直径的性质。

code

Show me the code
#define rd read()
#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)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 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=5e5+5;
const int lgr=24;
vector<int> e[N];
int d[N];
void dfs1(int u,int fa){for(int v:e[u]){if(v==fa)continue;d[v]=d[u]+1;dfs1(v,u);}return ;
}
int fa[N][30];
int dep[N];
void bfs(int s){memset(dep,0x3f,sizeof dep);queue<int> q;q.push(s);dep[s]=1;dep[0]=0;fa[0][0]=0;fa[s][0]=0;while(q.size()){int u=q.front();q.pop();for(int v:e[u]){if(dep[v]>dep[u]+1){dep[v]=dep[u]+1;fa[v][0]=u;q.push(v);for(int j=1;j<=lgr;j++){fa[v][j]=fa[fa[v][j-1]][j-1];}}}}return ;
}
int lca(int a,int b){if(a==b)return a;if(dep[a]<dep[b])swap(a,b);for(int i=lgr;i>=0;i--)if(dep[fa[a][i]]>=dep[b])a=fa[a][i];if(a==b) return a;for(int i=lgr;i>=0;i--)if(fa[a][i]!=fa[b][i])a=fa[a][i],b=fa[b][i];return fa[a][0];
}
int main(){int n;cin>>n;for(int i=1;i<n;i++){int u,v;cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}dfs1(1,0);int l1=0,l2=0;int md=0,ma=0;for(int i=1;i<=n;i++){if(md<d[i]){md=d[i];ma=i;}if(md==d[i]){ma=max(ma,i);}}memset(d,0,sizeof d);dfs1(ma,0);l1=ma;ma=0;md=0;for(int i=1;i<=n;i++){if(md<d[i]){md=d[i];ma=i;}if(md==d[i]){ma=max(ma,i);}}l2=ma;bfs(1);for(int i=1;i<=n;i++){int lca1=lca(i,l1);int lca2=lca(i,l2);int d1=dep[i]+dep[l1]-2*dep[lca1];int d2=dep[i]+dep[l2]-2*dep[lca2];if(d1>d2)cout<<l1<<'\n';else if(d1<d2)cout<<l2<<'\n';else cout<<max(l1,l2)<<'\n';}return 0;
}

ABC428F

神人线段树题。

场上想到了分成块处理 \(1 2\) 操作也知道这种东西可以用势能分析出来是均摊就行的。但是就是不会操作 \(3\)

赛后才知道由于初始 \(W_1<W_2<\cdots W_n\) 这种东西,包含位置是有单调性的。

。。。只能说还是注意力不够。

code

Show me the code

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

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

相关文章

FFT学习小结

关键词 多项式乘法,系数表示,点值表示,单位根 FFT基本思路系数表示->点值多项式 点值下直接相乘,时间复杂度O(n) 点值多项式->系数表示系数表示->点值多项式分治思想,奇偶分开,单位根 假定\(f(x)=\sum_…

2025.10.18——1黄

普及/提高- P14253 旅行(trip) CSP模拟赛T1,也是唯一AC的题。

幂等的双倍快乐,你值得拥有

hello, 这是有态度马甲的第xxx篇原创口水文。有趣指数5颗星,有用指数5颗星。 😠😠本文是国外技术网站medium上点赞超过200+的翻译/笔记文,有关规避/解决幂等请求的思路指南。 1. 软件领域二次请求无法避免 我们…

10.18总结

1.今天学习了数据模块化 2.明天用数据组完成数据整合

10.17总结

1.今天学习了如何转换数据格式 2.每天学习数据模块化

软考中级学习总结(2)

可靠性计算: (1)串联系统 R=R1R2R3......Rn (2)并联系统R=1-(1-R1)(1-R2).....(1-Rn) 编译程序和解释程序 1.低级语言:机器语言,汇编语言 2.高级语言:应用程序设计语言(java) 高级语言通过解释和编译后在机…

F - Not Adjacent

F - Not Adjacent Problem Statement You are given a length-$N$ integer sequence $A=(A _ 1,A _ 2,\ldots,A _ N)$. There are $2 ^ N$ (not necessarily contiguous) subsequences of $A$. Find how many subseque…

2025年粉末冶金制品/零件厂家推荐排行榜,高精度耐磨粉末冶金零件,优质粉末冶金制品公司推荐!

2025年粉末冶金制品/零件厂家推荐排行榜,高精度耐磨粉末冶金零件,优质粉末冶金制品公司推荐!一、行业背景介绍粉末冶金技术是一种先进的材料加工方法,通过将金属粉末或合金粉末经过压制和烧结等工艺,制备出具有特…

Neo4j 图数据库搭建和 Springboot 访问

Neo4j 图数据库主要用于节点关系的存储和查询,比传统关系型数据库的查询效率高,能够快速找到节点之间的最短路径,灵活强很强。 Neo4j 分为企业版和社区版,一般来说社区版免费,已经足够用了。有些功能只有企业版才…

AI元人文理论框架体系研究:价值原语化的文明演进机制与治理范式转变——声明Ai研究

AI元人文理论框架体系研究:价值原语化的文明演进机制与治理范式转变引言:AI元人文理论框架的兴起与核心问题1.1 理论背景与时代需求 在人工智能技术迅猛发展的2025年,人类社会正站在一个文明史的奇点上。通用人工智…

[buuctf]bjdctf_2020_router

首先查看一下文件的保护措施在用ida打开看一下 这里就是一个menu,然后进行选择,进入不同的函数这里主要注意到进入case1时,这里直接就有一个system函数,那么是否可以直接通过这个函数获得shell呢 在看看这里通过rea…

AtCoder Beginner Contest 428 ABCDE 题目解析

A - Grandmas Footsteps 题意 下课铃响起后,高桥会立即开始重复执行以下动作:以每秒 \(S\) 米的速度跑 \(A\) 秒,然后保持静止 \(B\) 秒。请问在下课铃响后 \(X\) 秒时,他总共跑了多少米? 思路 每 \(A+B\) 秒为一…

稻草火把下的星辰:回忆我的90年代求学路

1993年的夏天,我手握政和一中的录取通知书,却感觉这张纸比铅还重。中考成绩名列全校第一的喜悦,早已被无钱就读的现实冲刷得一干二净。在我们那个小村庄,考上高中并不被视为荣耀之事,唯有考上中专才被视为真正的“…

20251018

正睿 CSP 7 连测 终于 ak 了一场。 D 给定长度为 \(n(n \le 2 \times 10^5)\) 的序列 \(a(|a_i| \le 10^9)\)。若 \(a_i < 0\),\(b_i = -2^{-a_i}\);否则,\(b_i = 2^{a_i}\)。求 \(b\) 的最大子段和对 \(9982443…

Linux后门应急

Linux后门应急 1、主机后门用户名称:提交格式如:flag 进来先对终端升级一下 python -c import pty; pty.spawn("/bin/bash")直接使用cat /etc/passwd 查看后面用户flag{backdoor}2、主机排查项中可以发现到…

吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

2025.10.18总结

今天继续学软考相关内容,看了操作系统一个章节进程管理的内容。 操作系统的定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的划分,以提供给用户和其他软件方便的…

C++动态多态原理分析

class Animal { public:void speak() {cout << "Animal.speak()" << endl;} };class Cat :public Animal {void speak() {cout << "Cat.speak()" << endl;} }; void doW…

Java基础——初识Math类,基本运算符,自增自减运算符,逻辑运算符,位运算符,三元运算符

Java基础——初识Math类,基本运算符,自增自减运算符,逻辑运算符,位运算符,三元运算符初识Math类 Math.pow(2,3); //运用工具类进行次方运算基本运算符 1.算术运算符:+,-,,/,%(此前为二元运算符),++,--(一…

ENC28J60

ENC28J60ENC28J60 是在嵌入式开发、物联网、单片机联网中常见的一种芯片。 我们来从硬件、软件、应用三个角度讲清楚它。🧩 一、基本定义ENC28J60 是 Microchip(微芯科技) 公司生产的一款 独立的以太网控制器芯片(…