03 2023 档案

摘要:建树 void build(int l,int r,int rt) { if(l==r) { t[rt]=a[l]; return; } int mid=(l+r)>>1; build(l,mid,rt<<1); build(mid+1,r,(rt<<1)|1); t[rt]=t[rt<<1]+t[ 阅读全文
posted @ 2023-03-31 20:56 HikariFears 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目地址 A.Lucky Numbers 题意:给一个区间[l,r],任意给出一个数,使得各个数位上的最大值减去最小值最大,比如1735=7-1 Solution 暴力 对于r-l+1>=200的区间,一定存在一个值使得最大值为9,最小值为0 对于r-l+1<200的区间,直接暴力找 void so 阅读全文
posted @ 2023-03-30 17:05 HikariFears 阅读(90) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:由小到大给出n年的降雨量,进行m次询问,每次询问给出一个Y和X,问X年的降雨量是否不超过Y,并且对于任意的Z∈(Y,X)的降雨量,是否都严格小于Y和X的降雨量 Solution 维护区间最大值很简单,但是要判断实在是太阴间了,这里来练习一下st表 st表 st表用于解决可重复贡献问题 阅读全文
posted @ 2023-03-28 22:13 HikariFears 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:给出n个村庄的灾后重建所需时间和m条双向路和它们的路径长,进行q次询问,每次询问两个村庄在时间t时的最短的路径,且路径上所有村庄都已重建,如果不存在或者t时两个村庄都未重建好输出-1 Solution floyd算法板子题 dp[i][j][k]表示从i中转k到j的最短距离 根据fl 阅读全文
posted @ 2023-03-28 14:52 HikariFears 阅读(21) 评论(0) 推荐(0) 编辑
摘要:数据库/模式 创建create database/schema <数据库/模式名> 使用use <数据库/模式名> 删除drop database/schema <数据库/模式名> 查询所有show database 查询当前数据库select database(); 基本表 创建create ta 阅读全文
posted @ 2023-03-28 12:13 HikariFears 阅读(15) 评论(0) 推荐(0) 编辑
摘要:比赛地址 A.Showstopper 题意:给两个数组a和b,可以进行任意次操作:交换a[i]和b[i],问能否使得a[n]和b[n]分别是数组a和b的最大值 Solution 假设a[n]和b[n]固定,对于每一个i,a[i]和b[i]只能选其中之一,并且必须选择比a[n]或者b[n]小的,如果只 阅读全文
posted @ 2023-03-27 13:27 HikariFears 阅读(212) 评论(0) 推荐(0) 编辑
摘要:比赛地址 A.Probably English 1 void solve() 2 { 3 int n;cin>>n; 4 set<string>st; 5 st.insert("and"); 6 st.insert("not"); 7 st.insert("that"); 8 st.insert(" 阅读全文
posted @ 2023-03-26 16:20 HikariFears 阅读(105) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:有1-n个点由n-1条边连接起来,第一晚住在s点,并游览s相邻的点,第二晚住在除了s和游览过的点以外的点,以此类推,问能住几晚 Solution 很模板的树形dp dp[i][0/1]表示在i点是否住下的答案 如果不在i点住,那么相邻的点住不住都行,即dp[pos][0]+=max( 阅读全文
posted @ 2023-03-26 13:43 HikariFears 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:给出m和一个长度为2m的数组a,令数组b长度也为m,且对于b任意一个长度为m的子序列的积等于剩下的和,求出最小的Σ|a[i]-b[i]| Solution 显然只有一下几种情况: 1.m=1时,a[1]=a[2] 2.m=2是,4个数均为2, 3.m>2且m为偶数,有2n-1个-1和 阅读全文
posted @ 2023-03-25 20:52 HikariFears 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:给出n个点,求最近的两个点距离的平方 Solution 分治法 dfs(i,j)表示在i,j上的最近点距离的平方,问题在于如何将两个区间的合并 原题解(囧仙) 对于区间长度等于2的区间,直接返回距离,等于1则返回无限 以mid为中心,|x[mid]-x[i]|<res的点都统计一遍, 阅读全文
posted @ 2023-03-25 17:49 HikariFears 阅读(30) 评论(0) 推荐(0) 编辑
摘要:比赛地址 A. Garland 1 void solve() 2 { 3 for(int i=1;i<=4;i++) 4 { 5 b[i]=a[i]=0; 6 } 7 int cnt=0; 8 string t;cin>>t; 9 set<int>st; 10 for(int i=0;i<4;i++ 阅读全文
posted @ 2023-03-25 11:06 HikariFears 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:给你一个数组a,进行q次操作 有两种操作: 1:给出一个区间[l,r],令该区间内所有数都变成他们自身每一位数字的和 2:给出x,输出a[x]的值 Solution 显然可以发现,当数字变为个位数的时候,之后的操作都不用进行了 用树状数组维护一个操作的次数的前缀和,这里用差分,对l进 阅读全文
posted @ 2023-03-23 19:52 HikariFears 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:有n(n为偶数)张大小不同的卡牌,现在A和B玩一个游戏,规则是如果一个人出示了一张卡牌,另一个人无法出示更大的卡牌,他就赢了,如果反之该回合结束,并将这两张牌移除(移入墓地bushi),由另一个人先出示卡牌,如果牌全部出示完了,那么就算平局,现在问如果最开始由A出示,分别有多少种发牌 阅读全文
posted @ 2023-03-21 19:42 HikariFears 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:构造一个二维数组,使得任意一个4*4的子矩阵满足: A11⊕A12⊕A21⊕A22=A33⊕A34⊕A43⊕A44 A13⊕A14⊕A23⊕A24=A31⊕A32⊕A41⊕A42 Solution(思路来源:知乎xioachou) 对于4个数来说,任意一个二进制位上的1和0都为偶数, 阅读全文
posted @ 2023-03-21 15:51 HikariFears 阅读(20) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:有一个数组,Alice和Bob每次拿走其中的一个数,Alice先拿,问最后Alice拿的数的和是否为偶数 Solution 博弈论,这里的数据量不大,dp+记忆化搜索 dp[cnt1][cnt2][c][s]表示剩余cnt1个奇数和cnt2个偶数时,当前的操作人为c,Alice拿的数 阅读全文
posted @ 2023-03-21 15:18 HikariFears 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题意:初始化数组a为[1,2...,n],对该区间进行反转操作后,对子区间[l,mid],[mid+1,r]中的元素个数大于2的区间进行同样的操作,直到最后所有子区间元素个数都为1,给出一个查找区间[l,r],求区间和 例如:[1,2,3,4,5]反转变为[5,4,3,2,1],第二次反转后为[3, 阅读全文
posted @ 2023-03-21 14:23 HikariFears 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题目地址 题意:给你一个数n,构造一个字符串,使得至少有n个子串为codeforces Solution 用贪心的思想肯定是只在codeforces基础上修改 对于每个字符,对答案的贡献都是乘以字符的个数,所以直接暴力求解即可 PS:不能直接cout,会超时 void solve() { int n 阅读全文
posted @ 2023-03-20 15:04 HikariFears 阅读(20) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示