JOI
  • 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]$(也
  • 2024-01-15题解「JOI 2014 Final」IOI 馒头
    传送门。题意有\(n\)个物品,\(m\)个背包。第\(i\)个物品的价值是\(P_i\),第\(j\)个背包可以装\(C_i\)个物品,但会消耗\(E_i\)的价值。背包不能重复买,问最多可以获得多少价值。分析首先一个简单的贪心,我们在购买背包后塞入物品,一定时从大往小塞,也就是说,我们可以先对
  • 2023-11-18P9197 [JOI Open 2016] 摩天大楼
    学习:连续端dp。目标:最优化\(F(S)=\sum_{i=1}^{n-1}w(A_{S_i},A_{S_{i+1}})\),或者说,重排序列以最优化相邻两个元素产生的贡献。考虑拆开贡献,拆成类似\(L(a_i)+R(a_{i+1})\)的形式。连续端dp通过以下两个操作生成作为一整个连续端的序列:在一个段的左或右插入一个元
  • 2023-10-19JOI Final 2021
    loj3469.「JOI2021Final」雪球发现\(i\)的答案只和相邻的两个数有关,且两边是独立的,不妨假设\(a_i=0\),\(a_{i+1}=d\)。那么假设第\(j\)次操作\(a_{i+1}\)到达的最小位置是\(d-mn_j\),\(a_i\)到达最大位置是\(mx_j\),那么第\(j\)次操作\(i\)拓宽的区间是\((mx_{j-1
  • 2023-09-27JOI Open 2018
    バブルソート2/BubbleSort2可以发现,答案即为\(\max\limits_{i=1}^n\sum\limits_{j=1}^{i-1}[a_j>a_i]\)。因为是\(\max\),所以可能成为答案只有后缀最小值,可以把式子改写成\(\max\limits_{i=1}^n\left(i-\sum\limits_{j=1}^{n}[a_j\lea_i]\right)\)。这个就可以直接使
  • 2023-09-23JOI Final 2022
    怎么这么难!写BCDE。loj3663.「JOI2022Final」自学tag:二分,贪心。先不妨假设\(A_i\geqB_i\)。二分,然后考虑怎么选。发现方案一定是:如果能上课就先上课把需求填满,然后空出来的时间用来自学上课上不满的课程。如何证明。只需要证明:不存在上课能满足需求的,需要用别的课的
  • 2023-09-22[JOI 2023 Final] Stone Arranging 2
    洛谷P9349题意一种区间覆盖操作,可以考虑直接无脑线段树,复杂度为\(O(nlog_n)\)。但是观察后发现可以开一个桶,记录这个数在序列中出现的最后一次的下标。循环扫一遍原序列,从小到大对于每一个a[i],使得下标i到m[a[i]]的区间全部覆盖为a[i]。每次覆盖一个小区间后,因为前面的区间已
  • 2023-09-20joi 自定义错误提示
    <template><div><divclass="bg-whiterounded-lgfont-lightw-96shadowp-4"><divclass="text-centertext-lgmb-4">后台管理系统</div><[email protected]="(e)=>{}">
  • 2023-08-27JOI Open 2023
    T2怎么std9k。*loj3985.「JOIOpen2023」古代机器2tag:交互,字符串,线性代数。感觉很厉害。解法一:\(m=n+2\)。考虑按位确定,那么确定第\(i\)位的时候建立如下自动机:对于\(j<i\),\(a_j=b_j=j+1\),\(a_i=i+1,b_i=i+2\),然后在\(i+1,i+2\)连两个自环。解法二:\(m=n+1\)。仍
  • 2023-08-15[JOI 2023 Final] Advertisement 2 题解
    题解JOI王国有\(N\)位居民,从\(1\)到\(N\)编号。居民\(i\)(\(1\lei\leN\))居住在数轴上坐标\(X_i\)处,其影响力为\(E_i\)。同一个坐标可能住了多于一位居民。居民的影响力越高,广告效应也越高,但买书也越谨慎。Rie出版了一本关于信息学的书。为了让更多人购买这本书,她可
  • 2023-08-138.12 2014 年 JOI 圆满结束
    稻草人按\(x\)排序,可以将问题转化为寻找点对\((i,j)\),使得\(y[i]<y[j]\)且对于所有\(i<k<j\),都不满足\(y[i]<y[k]<y[j]\)。点对问题,考虑\(CDQ\)分治。容易发现最终对点\(i\)产生贡献的\(j\)的\(y[j]\)单调递减,可以使用单调栈维护。单调栈内即是右边所有可以满
  • 2023-08-098.9 JOI 专场
    上午下午模拟赛。期望得分100+12+30,实际得分100+12+60第一题用时过长导致没有时间看第二题和第三题。二分图太弱了!疑案追凶我们将相邻的,互不相交的身高区间放到一个询问里,这样肯定是最优的。因此,我们要做的是对于每个区间,统计出他最远能到达哪里,使经过的地方互不
  • 2023-07-31[JOI 2020 Final] 火事 题解
    题面给定一个长为\(N\)的序列\(S_i\),刚开始为时刻\(0\)。定义\(t\)时刻第\(i\)个数为\(S_i(t)\),那么:\[\left\{\begin{array}{ll}S_0(t)=0\\S_i(0)=S_i\\S_i(t)=\max\{S_{i-1}(t-1),S_i(t-1)\}\end{array}\right.\]共有\(Q\)个询问,每
  • 2023-07-28JOI 2018 Final
    T1:注意到\(i,i+1\)间的间隔如果选上会增加\(a_{i+1}-a_i-1\)的时间,然后消耗一根火柴。那不取最大的\(k-1\)个即可。(\(-1\)是因为一开始用了一根。)T2:按\(A\)排序,算\(B\)的前缀和\(S\),选一个区间\([l,r]\)显然比不是区间更优,代价\(S_r-A_r-(S_l-A_{l+1})\),一个变量
  • 2023-07-26[JOI 2022 Final] 自学 题解
    洛谷传送门1.题意简述:一个学期有\(N\)天\(N*M\)节课,每天的第\(i\)节课可以选择效果\(a_i\)的学习与\(b_i\)的自习。问应如何安排每节课,使所有功课最小值最大?2.思路:这道题想直接模拟非常麻烦,但是如果我们能够灵活运用二分算法,这道题就非常简单了。考虑到数据范围较
  • 2023-07-07BZOJ 4247: 挂饰 背包dp
    4247:挂饰TimeLimit: 10Sec  MemoryLimit: 256MBSubmit: 999  Solved: 387[Submit][Status][Discuss]DescriptionJOI君有N个装在手机上的挂饰,编号为1...N。JOI君可以将其中的一些装在手机上。JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件
  • 2023-06-18JOI Final 2020 题解
    JOI2020JustLongNeckties首先一定是贪心将两个从小到大排。然后考虑维护\(a_i-b_i\)的前缀max与\(a_{i+1}-b_i\)的后缀max即可。https://qoj.ac/submission/113106JOI2020JJOOII2考虑维护出每个点往前跳\(k\)个J/O/I跳到哪里。于是枚举右端点,然后往前跳找
  • 2023-06-13题解 P9196【[JOI Open 2016] 销售基因链】
    套路题,来讲个套路解法。如果没有后缀的要求,答案就是trie树的子树内字符串数量。现在加上了后缀,尝试继续使用trie树解决问题。我们建立两棵trie树\(T_1,T_2\),其中\(T_1\)是正常的trie树,\(T_2\)是每个字符串翻转后的trie树。这样的话,包含给定后缀的字符串在\(T_2\)
  • 2023-05-28「解题报告」P9197 [JOI Open 2016] 摩天大楼
    水个题。好像是连续段DP模板题,但是没怎么做过连续段DP。连续段DP大致思想就是对排列的计数,可以按照某个顺序依次填入每个数,将当前填的数看做若干连续段,每次考虑合并两个连续段,新建两个连续段或拓展一个连续段,然后就容易对排列进行计数了。这题有一个绝对值的限制,而我们可
  • 2023-05-26「解题报告」P9195 [JOI Open 2016] JOIRIS
    发现上午高强度想题之后下午就啥都不想干了。神秘构造题,我属实是啥也不会了。先把下标改成从\(0\)开始。首先看到格子上的连续\(k\)的骨牌显然能想到将格子\(k\)染色。而由于有删除一行的操作,按照普通的染色方法好像并不好看,所以我们按列染色。这样我们统计每个颜色上的