- 2024-11-21NOIP 模拟 18
NOIP模拟18最近老是犯唐,这次也是。T1图容易得到暴力代码:namespaces1{ boolsta[MAXN*MAXN]; boolS[MAXN],T[MAXN]; strings; intans; intmain(){cin>>n>>m; for(inti=1;i<=m;++i){ cin>>s; memset(S,0,sizeof(bool)*(n+5)); memset(T,
- 2024-11-21二叉搜索树
应用BST通过优先级来构建一棵树,有利于我们系统的架构时,根据具体框架的优先级来便于构建系统的结构树,方便我们的查找和插入。性质左子树的元素均小于根节点右子树的元素均大于根节点左右子树均为二叉搜索树和堆的结构类似,只不过根和子树的大小关系的不同,但均是通过元素的大
- 2024-11-20ABC代码
ABC379A#include<bits/stdc++.h>usingnamespacestd;#definelllonglongsignedmain(){ charch[5]; cin>>ch; cout<<ch[1]<<ch[2]<<ch[0]<<""<<ch[2]<<ch[0]<<ch[1]; return0;}B#inc
- 2024-11-20[赛记] NOIP2024加赛5
暴力操作(opt)30pts这个错解可反悔贪心30pts;考虑正解,我们只需考虑前$\fracn2+1$小的数即可;考虑二分出一个中位数$mid$,那么我们要让大于它的都用最小的代价变小;考虑如何求这个最小的代价,因为$\lfloor\frac{\lfloor\fracab\rfloor}{c}\rfloor=\lfloor\frac{ab
- 2024-11-193354. 使数组元素等于零
给你一个整数数组 nums 。开始时,选择一个满足 nums[curr]==0 的起始位置 curr ,并选择一个移动 方向 :向左或者向右。此后,你需要重复下面的过程:如果 curr 超过范围 [0,n-1] ,过程结束。如果 nums[curr]==0 ,沿当前方向继续移动:如果向右移,则 递增 curr
- 2024-11-19ABC378
A.Pairing模拟代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){vector<int>a(4);cin>>a[0]>>a[1]>>a[2]>>a[3];ranges::sort(a);if(a[0]==a[1]anda[2]==a[3]){
- 2024-11-19【算法】(简单题)1.数字字符串相乘
#include<stdio.h>#include<stdlib.h>//包含malloc和free的头文件#include<string.h>//包含字符串相关操作的头文件//定义字符串乘法函数char*multiply(constchar*num1,constchar*num2){//定义结果字符串指针char*ans=NULL;longres
- 2024-11-19CF2037E 题解
CF2037E题解题意给定一个长度为\(n\)的\(01\)串,定义\(f(l,r)\)为\(l\)到\(r\)区间内\(01\)子序列的数量,通过最多\(n\)次交互,确定这个\(01\)串的构成。分析可以从莫队的思想,也就是增量,来思考如何解决。如果说我们已经知道了\(f(l,r)=ans\),接下来我们询问
- 2024-11-19189. 轮转数组
题目自己写的老拉了classSolution{public:voidrotate(vector<int>&nums,intk){constintn=nums.size();intans[100010]={};for(inti=0;i<n;++i)ans[(i+k)%n]=nums[i];for(inti=
- 2024-11-19LCR 020. 回文子串(中等)(主站647)
https://leetcode.cn/problems/a7VOhD/https://leetcode.cn/problems/palindromic-substrings/难度:☆☆☆题目:给定一个字符串s,请计算这个字符串中有多少个回文子字符串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例:输入:s
- 2024-11-19Educational Codeforces Round 156 (Rated for Div. 2) - VP记录
A.SumofThree枚举即可,是否可行只与\(a,b,c\)模三的余数有关,所以随便小范围枚举一下\(a,b\)就行了(只枚举\(1,2,3\)可能会因为两数相同而误判),这样最不容易错。点击查看代码#include<cstdio>usingnamespacestd;intmain(){ intT;scanf("%d",&T); while(T--)
- 2024-11-19【题解】洛谷:P4805 [CCC2016] 合并饭团
P4805[CCC2016]合并饭团希望写完这篇题解能真正地会这种题。合并两个的操作很像合并石子的操作,确实直接那么做就可以,但三个怎么办呢,暴力做法就是枚举中间两个端点然后转移,但是这样复杂度太大了有\(O(n^4)\)。于是搬出我们的双指针,在面对区间问题时双指针可以有效地解决问题,
- 2024-11-19The 2024 ICPC Asia East Continent Online Contest (II) K.Match
题面K.Match给定长度为\(n\)的两个序列\(a\)和\(b\),当且仅当\(a_i\oplusb_j\gek\)时,\(a_i\)与\(b_j\)连一条双向边,其中\(\oplus\)表示XOR运算。对于\([1,n]\)范围内的每个\(x\),计算大小为\(x\)的匹配数的个数,结果对\(998244353\)取模。题解考虑两
- 2024-11-18NOIP2024加赛6
NOIP2024加赛6\(T1\)P323.草莓\(60pts\)部分分\(60pts\)先将\(\{x\},\{y\}\)降序排序,状态转移方程为\(f_{i,j}=\min(f_{i-1,j}+x_{i}(j+1),f_{i,j-1}+y_{j}(i+1))\),边界为\(f_{0,0}=0\),最终有\(f_{n-1,m-1}\)即为所求。若费用提前计算则需要将\(\{x\}
- 2024-11-18CF1793E
link一道十分简明的序列题题意简述$n$ 个人,每个人都要给一个 $[1,m]$ 之间的整数,且每个 $[1,m]$ 间的整数需至少给一个人。每个人有一个阈值 $a_i$,若与第 $i$ 个人拥有相同数字的人数至少为 $a_i$(包括自己),那么他就是高兴的。多次询问,每次一个 $m$,求最
- 2024-11-18CF187E Heaven Tour
题意给定\(n\)个点,初始在\(s\)点,求走遍所有点的最小移动距离,以及方案,需要向左走恰好\(l\)次。\(n\le10^5\)。Sol难点在于想到枚举终点。钦定当前若终点在起点右边,那么最优走法就是先向左走到底,然后向右走到底,然后最后再走到终点。其中中间重复走的段,显然可以发现
- 2024-11-18[SDOI2016] 排列计数(组合数学)
题目传送门解题思路可以先想想满足题目的序列是如何构造的?1.先从 个位置里选 个位置,使得这些位置上的 ,方案数为 。2.再将剩下的数错排。于是,这又扯到了错排问题。我们可以设 表示将 个元素错排的方案数。我们可以将第 个数放在其他 个位置,剩余
- 2024-11-18[ARC187B] Sum of CC
题意给定一个长为\(n\)的序列,\(a_i\in[1,m]\)对于所有\(1\lei<j\len\)且\(a_i\lea_j\)则对\((i,j)\)连无向边。求对于给定序列\(b\)所有的-1替换为\([1,m]\)的所有情况所连成的图连通块个数之和。\(n,m\le2000\)。Sol唐完了。首先注意到连通
- 2024-11-18241118 noip 数数模拟赛
省流:\(100+100+100+10\)。四道数数太好玩了。绿蓝紫黑。T1题意:如下是一个不完全正确的归并排序算法代码。//此函数表示将S[1,mid],S[mid+1,r]两个有序序列合并成为一个大的有序序列S[l,r],如果原序列无序则合并后的序列也无序voidmerge_arr(intl,intmid,intr){
- 2024-11-18打卡信奥刷题(262)用C++信奥P2004[普及组/提高] 领地选择
领地选择题目描述作为在虚拟世界里统帅千军万马的领袖,小Z认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小Z来说是非常重要的。首都被认为是一个占地C×
- 2024-11-17牛客周赛 Round 68(A~E)
比赛链接:https://ac.nowcoder.com/acm/contest/95928#question这次D题小细节搞了好久,越界了好几次,没想到赛后做E,发现还更简单的A.三途川的摆渡人(二)题面:小红这天来到了三途川,发现这里有一个摆渡人,名字叫小町。小町的职责是将一些灵魂运送到冥界。但小町非常喜欢偷懒,她经常在上
- 2024-11-17【星航计划】2024.11 Div. 3 题解
2024--星航计划--十一月份--基础算法A.分段每一段连续的\(1\)之间是独立的,我们只需要关心一段连续的1的结果。可以证明对于一段连续的\(1\),最优策略是将其划分成多个单独的\(1\)以及可能余下的连续两个\(1\)。对于\(k\)个连续的\(1\),如果\(k\)是奇数,
- 2024-11-17把以前想的唐氏东西记录一下。
题目当时什么hash状物都不会,但考虑一下哈希的本质,实际上是一种映射关系,在这一道题中,我们可以省掉哈希的进制,因为匹配的结果与位置无关,接下来就可以乱搞了。是真的乱搞(意思是随便想一个与之关联的函数),但是这个东西现在发现和sumhash很相似,实际上sumhash只是赋了一个随机
- 2024-11-172024.11.16 2024 CCPC济南站
Solved:5/13Penalty:707Rank:101Rank(ucup):200比赛链接A.TheFool题意:给一个\(n\timesm\)的字符串矩阵,有一个字符串和其他不同,求这个字符串的位置。直接模拟即可。#include<bits/stdc++.h>usingnamespacestd;constintN=205;stringa[N];intmain(){ios::s
- 2024-11-17【当代码猿第一天】
机缘 ——为何而来一段无聊的时光看到大火的程序猿圈钱收获刚开始便有人支持迷上了发布的快乐给了许多人帮助日常创作成了我生活的一部分了与我的生活紧密相关成就 ——第一个真正的文章//C++同构数#include<bits/stdc++.h>usingnames