Joi
  • 2024-11-16P4138
    [JOISC2014]挂饰题目描述JOI君有N个装在手机上的挂饰,编号为1...N。JOI君可以将其中的一些装在手机上。JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩。每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上。直接挂在手机上的挂件最多有1个。此外,每
  • 2024-11-11P8162 [JOI 2022 Final] 让我们赢得选举 (Let's Win the Election) 题解
    P8162[JOI2022Final]让我们赢得选举(Let'sWintheElection)题解朴素的想法是先抓一部分人,再一起去发表演讲。这样就要按\(b\)的值从小到大排序,枚举选择的一部分\(b\)值,在后面挑选一些最小的\(a\)选择即可。但这样显然是错误的。观察到\(n\le500\),显然是\(O(n^3
  • 2024-11-06Node.js-增强 API 安全性和性能优化
  • 2024-11-05P6879 [JOI 2020 Final] スタンプラリー 3 [区间DP]
    P6879[JOI2020Final]スタンプラリー3Solution首先这是一道最优值问题,再根据数据范围\(n\le200\),那么正解可能会是\(O(n^3)\)的DP。根据题意,我们发现主角走过的雕像一定是个区间,可以考虑区间DP。想一想我们需要知道什么,然后把它放到DP状态里面。我们需要知道
  • 2024-10-17「JOI 2017 Final」足球
    题目询问两个点之间的对小代价,自然想到最短路。我们发现当球在同一个点上的时候其实状态是不一样的。如果是一个球员运球到这个点,那么可以向四个方向运球。但是如果是这个球在踢球的过程中,是改变不了方向的。所以需要把一个点拆成五个点,分别表示在运球,向上,下,左,右踢球。连边有
  • 2024-10-10[JOI 2013 Final]彩灯
    [JOI2013Final]彩灯题意给出一个\(01\)序列,可以把一段区间反转。求反转后序列最长的交替子段,即\(010101\ldots\)或\(101010\ldots\)。思路首先发现一个性质,反转的一定是一段交替子段。因为反转不交替子段对答案的贡献不优。枚举反转哪一段交替子段,统计左右两边的
  • 2024-10-10[JOI 2013 Final]JOIOI 塔
    [JOI2013Final]JOIOI塔题意给出一个由\(\text{JOI}\)组成的字符串,可从中取出一些子序列。求最多取出多少\(\text{IOI}\)和\(\text{JOI}\)。思路若答案\(x\)可行,则所有\(y<x\)均可行,若答案\(x\)不可行,则所有\(y>x\)均不可行。这样就可以可行性二分。考虑如
  • 2024-10-10[JOI 2013 Final]现代豪宅
    [JOI2013Final]现代豪宅题意给出一个\(n\timesm\)的网格图,每两个格子之间有一扇门。初始上下方向的门都是开着的,左右方向的门是关着的。有一些格子有按钮,可以把打开的门关上,关上的门打开。走一步需要一秒,按按钮需要一秒,求从\((1,1)\)到达\((n,m)\)的最小步数。思路
  • 2024-10-10[JOI 2013 Final]搭乘 IOI 火车
    [JOI2013Final]搭乘IOI火车题意给出两个由\(\text{OI}\)组成的字符串\(S,T\)。可以删除每个字符串的前缀和后缀。每次从剩下部分的第一位取出一个字符放到新的字符串中。要求新字符串必须以\(\text{I}\)开头结尾,相同的字符不能相邻,求新字符串的最大长度。思路定义
  • 2024-10-09JOI Open 2018
    T1BubbleSort2题意:给定一个长度为\(n\)的序列\(a\),进行\(q\)次修改,第\(i\)次将第\(x_i\)个元素的值修改为\(y_i\)。对于每次操作后,你都需要求出,如果此时对序列进行冒泡排序,需要多少次冒泡才能完成排序。\(n\le5\times10^5\)。序列有序意味着,每个数前面都没
  • 2024-10-06[JOI 2024 Final] 建设工程 2
    [JOI2024Final]建设工程2题意给出一张图和\(S\),\(T\)。可在任意两点\(u,v(u<v)\)之间添加一条长度为\(L\)的边(只可添加一次)。求有多少种添加方案使得\(S\)到\(T\)的最短路长度\(\leK\)。思路首先,若\(S\)到\(T\)的最短路已经\(\leK\),答案为\(\frac{n\t
  • 2024-10-04JOI 2020 Final
    A-長いだけのネクタイ(JustLongNeckties)JOI公司开了一个派对。有\(n+1\)条领带,第\(i\)条领带的长度是\(a_i\)。有\(n\)名员工,第\(i\)名员工适合长度不超过\(b_i\)的领带。对于一种将\(n\)条领带配对给\(n\)的人的方案,设第\(i\)条领带匹配了第\(j\)
  • 2024-10-02JOI 2018 Final
    A-ストーブ(Stove)有\(n\)个客人将要来访,第\(i\)个客人的来访时间为\([a_i,a_i+1]\),保证\(\foralli\in[1,n),a_i<a_{i+1}\)。在每个客人来访时,你都需要保证暖炉是亮着的(初始时暖炉为熄灭状态)。你可以在任意时刻熄灭暖炉,但每次点亮都需要消耗一根火柴,且你
  • 2024-09-25【做题纪要】NOIp长训营期间做题纪要
    [AGC006D]MedianPyramidHard看了一圈感觉就这题比较可做,那就先写这个,但是还是没啥头绪。首先看咋写,这题的暴力肯定是直接从第\(n\)层开始反推就行的,但是复杂度好像很劣的样子,这肯定不行考虑二分答案,我们二分塔顶的值,如果比这个点大我们就设为\(1\),如果比这个点小我们就设
  • 2024-09-14JOI Open 2017(口胡)
    T1AmusementPark题意:通信题。给定一张\(n\)个点\(m\)条边的无向连通图。Alice会得到一个\([0,2^{60})\)中的数\(x\),并且她需要给这张图上每一个结点标一个数字\(a_i=0/1\)。然后Bob也会拿到这张图(编号和Alice的一样),但是他不知道\(x\),也不知道所有点上的数字
  • 2024-09-13JOI Open 2016
    T1JOIRIS你在玩俄罗斯方块,游戏区域是一个宽度为\(n\),高度足够大的矩形网格、初始时第\(i\)列有\(a_i\)个方块。给定参数\(k\),你可以做不超过\(10^4\)次操作,来将这个网格中的所有方块全部消除,一次操作形如:在网格的最顶端落下一个\(1\timesk\)或者\(k\times1\)
  • 2024-08-12node.js 使用joi来验证数据模型
    node.js使用joi来验证数据模型     joi是nodej的一个工具模块,主要用于JavaScript对象的校验。它是一种简单易用的javacript对象约束描述语言,可以轻松解决nodejs开发中的各种参数的校验。 直接上代码//导入joi模块constjoi=require('joi')//定义
  • 2024-08-12koa中使用joi进行参数校验
    koa中使用joi进行参数校验超人鸭关注IP属地:广东0.312021.07.0618:23:59字数1,395阅读6,498在编写api的时候通常都需要对参数进行校验,包括参数的类型、必填等;如果是字符串,是否可以为空、该符合什么规则等;如果是数字,最大值最小值是什么等等等等。在koa中我推荐使用 j
  • 2024-07-31[JOI 2020 Final] 火事 题解
    给一篇题解。(下面这张图是从luogu上粘贴的,因为不太会画图)其中纵坐标为\(t\),横坐标为\(a_i\)。发现同颜色块只有平行四边形和直角梯形(等腰直角三角形)两种情况。可以将直角梯形削去左下角,分成两部分考虑。等直可以直接暴力插入区间,总个数\(O(n)\)。平行四边形可以看作上
  • 2024-06-19[JOI Open 2024] 中暑
    原问题的规则实际上很大程度上是为最小化而设计的,但是我们却要求的是最大化,这意味着原问题的规则实际上是与我们要最优化的问题相矛盾,可行的办法可能是通过一些转化使新问题与规则刚好契合。考虑原问题的规则实际上告诉我们只有当两边都不能放的时候才会对答案产生贡献,意味着实际
  • 2024-04-06如何通过数据验证防止 Web API 攻击 - Web API 安全指南
    充分的数据保护和用户保密是网页开发者的主要责任。因此,在构建API终端时,确保最高可能的安全性至关重要。应用程序安全是客户端和服务器开发者共同的责任,一方的疏忽可能会造成灾难性后果。统计数据显示,2023年的数据泄露导致全球超过800万个数据记录暴露。在本文中,我将重点介
  • 2024-03-29P8162 [JOI 2022 Final] 让我们赢得选举
    P8162[JOI2022Final]让我们赢得选举贪心+dp题目要求最小耗时,可以考虑贪心和dp。先考虑贪心。首先,假如我们此时有\(b\)个州得到了选票和协作者,那么下一次演讲一定是\(b\)个协作者和自己一起去同一个州演讲,时间为\(\frac{a_i/b_i}{b+1}\),这样我们的时间一定不会浪费掉。
  • 2024-02-14「JOI Open 2019」三级跳 题解
    https://loj.ac/p/3153Part1暴力暴力思路:每次询问的时候,枚举\(a\)和\(b\)在哪里,然后就确定了\(c\)的范围\([2\timesb-a]\),找这个范围内的最大的A[c]即可。Part2优化舍解考虑哪一些\([a,b]\)是明显不优的。如果存在\(i\),满足\(a<i<b\)且\(A[i]<\min(A[a],A[b
  • 2024-02-14「JOI Open 2019」三段跳び
    题意:\(n\)个数,\(q\)次查询,每次给出区间\([l,r]\),求区间内满足以下条件的三元组\((x,y,z)\)中\(a_{x}+a_{y}+a_{z}\)的最大值:\(x<y<z\)。\(y-x\lez-y\)。做法考虑可能成为答案的\(x\)和\(y\)组成的二元组\((x,y)\)是很少的。事实上,这是\(\mathcalO(n)\)
  • 2024-02-08「JOI 2024 Final」礼物交换
    [link](https://loj.ac/p/4092)考虑单次询问怎么做。不难发现这是一个二分图匹配,左部点$i$可以匹配到右部点$j$当且仅当$A_i\geB_j\andi\neqj$。不妨设$B$递增,这当然可以通过排序实现。什么时候不存在完美匹配呢?就是存在左部点$i$,$i$只能匹配到右部点$[1,i-1]$(也