- 2024-11-13UOJ NOI Round #7 Day1 比特迷宫 个人记录
思路构造,且上界并不是特别严格。/bx/bx/bx首先加法比较“混合”,考虑转成位运算,具体地,钦定操作的\(a,b\)满足\(a\&b=0\)。考虑递归成子问题,按照popcount分组,有一个关键观察是:我们在操作一个\(a|b=c\)的时候,可以将任意几个\(d\&c=d\)且\(popcount(d)=popcount
- 2024-10-19UOJ 80:二分图最大权匹配 ← KM算法
【KM算法简介】Kuhn-Munkres算法,简称KM算法,是用于“二分图带权最大匹配问题”的经典算法。【题目来源】https://uoj.ac/problem/80【题目描述】从前一个和谐的班级,有nl个是男生,有nr个是女生。编号分别为1,……,nl和1,……,nr。有若干个这样的条件:第v个男生
- 2024-10-07P5416 = UOJ 198 时空旅行 题解
Statement一棵树,每个节点上有一个集合,每个儿子集合由父亲集合增加一个点\((x_i,c_i)\)或删除一个点得到。根节点集合为\(\{(0,0,0,c_0)\}\)多次询问,每次问\(u\)点的集合内,\(\min\{(x_i-x)^2+c_i\}\)Solution首先你认真读完题发现原题中\(y,z\)都是没用的然后离线DFS
- 2024-09-27CF套题3翻译(uoj)
\(A\)题:给定两个\(01\)串,问\(A\)是否可以通过相邻两位的异或和或操作得到\(B\)串.异或:\(01/10→11,11→10/01\)或:\(10/01→11\)\(B\)题:题目大意:给定\(n\)个正整数,请将适当调整他们的顺序,使得两个相同的数之间的距离的最小值最大。注意距离定义为两个数之间的数的个数,
- 2024-09-27斜率优化解题报告(uoj转)
任务安排1~3:模版。用到一个著名的思想:费用提前计算。暴力维数高的原因是不能较快的知道前面分了几批但是一旦分了一批,对后面都会有\(S\)的时间叠加所以不妨设\(f_i\)表示已知会花费的时间min,\(f_i=\min_{j=1}^{i-1}f_j+(SC_i-SC_j)\cdotST_i+S\cdot(SC_n-SC_j)\)
- 2024-09-27单调队列优化DP解题报告(uoj转)
Fence\(K\)很小,考虑\(K\)开一维,\(N\)开一维\(f_{i,j}\)表示前\(i\)个工匠粉刷前\(j\)个木板的最大花费\(f_{i,j}=\min_{k=j-l_i}^{s_i-1}f_{i-1,k}+(j-k)\cdotp_i\)拆开为\(f_{i,j}=f_{i-1,k}-k\cdotp_i+j\cdotp_i\)\(i\)固定时维护\(f_{i-1,k}-k\cdotp_i\)的最小
- 2024-09-27log型数据结构优化DP解题报告(uoj)
交作业用T220417最长公共上升子序列不难看出状态同最长公共子序列,但由于上升条件限制,加一个限制:\(f_{i,j}\)表示\(a_{1...i}\)匹配\(b_{1...j}\)且\(a_i\)必须做结尾的最长公共上升子序列长度转移方程为\(f_{i,j}=f_{i,j-1}\)(if\(a_i\neqb_j\))\(f_{i,j}=\max_{k
- 2024-09-27CF套题4翻译(uoj转载)
\(A\)题:CF1098A给你一棵树,树根为\(1\)号点。每个点\(i\)有一个非负整数权值\(a_i\),记点\(i\)到根的路径上经过的所有点(包括根和自身)的权值总和为\(s_i\)。现在擦去所有深度为偶数的点的\(s_i\),求\(\suma_i\)最小可能是多少,如果无解,输出\(-1\)。被擦去的\(s_i\)在输入文件中被
- 2024-08-18UOJ #889. 【UNR #8】二维抄袭检测
题面传送门首先你需要会\(n=2\)时候的贪心,这个比较简单,直接能走就走就行了。然后\(n=3\)的时候就不能能走就走了,可能在中间就拐到第三行了。但是容易发现的是我们只会在最后一个能走到第三行的位置走到第三行。我们需要找到这个位置。一个比较重要的观察是,如果其后面匹配长
- 2024-08-18UOJ #888. 【UNR #8】里外一致
题面传送门唉,不会生成函数。考虑一种出现次数为\(x\)的数,它可以被分到其中一边,也可以两边同时分。前者会有\(1\)的系数,后者会有\(2^x-2\)的系数。用生成函数来刻画,则一种出现次数为\(c\)的数的GF为\(x+\frac{1}{x}+2^c-2\),而我们要求的就是所有出现过的数的GF乘起
- 2024-08-10UOJ #712. 【北大集训2021】简单数据结构
Description你有一个长度为\(n\)的序列\(a\),下面你要进行\(q\)次修改或询问。给定\(v\),将所有\(a_i\)变为\(\min(a_i,v)\)。将所有\(a_i\)变为\(a_i+i\)。给定\(l,r\),询问\(\sum_{i=l}^ra_i\)。\(1\leqn,q\leq2\times10^5,0\leqa_i,v_i\leq10^{12}
- 2024-07-02UOJ #807. 【UR #25】装配序列
题面传送门首先根据Dliworth定理,原问题等价于前缀LIS。考虑如何做到\(O(n^2)\)求出LIS的变化点(显然这只有\(n\)个)。按照值从小到大考虑,记\(f_{i,j}\)表示考虑到第\(i\)个值,长度为\(j\)的LIS最早在哪个前缀处出现,转移只需要two-pointers一遍就能更新。这个转
- 2024-05-31【题解】UOJ#284 快乐游戏鸡
题目大意给出一棵有\(n\)个节点的树,编号为\(i\)的点权为\(w_i\),在树上通过一条边需要花费时间\(1\),如果能通过一个点权为\(w_i\)的点当且仅当此时的死亡次数大于等于\(w_i\),否则会立即回到起点并且死亡次数加一。给出\(q\)组询问,每组询问给出起点\(s\)和终点\(t\),
- 2024-05-31UOJ#884. 【UR #27】509 号迷宫
有一个显然的\(\mathcalO(n^2)\)DP。考虑利用组合数优化,只在满足纵坐标\(y|p\)的位置记录状态并转移。有障碍,需要做容斥。四种转移:线对线、点对点、线对点、点对线组合计数算明白了就简单了。代码#include<bits/stdc++.h>usingnamespacestd;constexprintN=
- 2024-05-30uoj项目部署的学习实践和基于JUnit进行的项目测试
基于JUnit进行的项目测试对不同功能点进行测试:检测忘记密码功能、注册功能能否正常使用脚本文件:registerTest.java1.检测忘记密码功能。事先注册好一个账号用于测试测试步骤:输入账号输入电子邮箱输入验证码1)用例标题:验证码错误情况测试数据:账号2021127电子邮箱2848250
- 2024-05-30uoj概述
一、基本工作原理UOJ主要由两部分组成:网页端和测评端。顾名思义,网页端就是用来通过网页与用户交互的,测评端则是在用户发出测评请求时负责测评并将结果发送给网页端的。网页端什么是网页端?顾名思义,就是管网页的部分。网页端又分为网页前端和网页后端。所谓网页前端,就是你打开浏
- 2024-05-30uoj项目部署中题目管理的相关学习与应用
一.概述1.新建题目和管理界面只有超级管理员有权限新建题目,每次新建题目都必须由超级管理员完成。在题目页面,超级管理员或该题目的管理员可以通过管理按钮进入题目管理界面。题目管理界面分为三个选项卡:编辑:题面编辑页面管理者:题目管理员管理页面数据:题目数据管理页面以及
- 2024-05-30[后续更新中] DeerOJ的工作原理
服务端收到请求后,会运行web文件夹下的index.php文件(由同目录下的.htaccess决定)index.php文件的内容截图如下:index.php会加载所需的函数库和类库,具体如下:require$_SERVER['DOCUMENT_ROOT'].'/app/libs/uoj-lib.php';该句是调用/app/libs/下的php文件,用来调用一些
- 2024-05-30【持续更新】创新实训
项目简介随着互联网+的生态模式和人工智能的产业化发展,程序设计已成为计算机专业乃至工科学生的必备技能之一。学生学习程序设计,不仅能提高代码水平能力,学会如何写代码,如何写好代码,而且能锻炼学生在今后面对项目开发等实际应用场景时解决问题的能力。因此,很多同学在刚刚接触到编
- 2024-04-04UOJ #514. 【UR #19】通用测评号
Description有\(n\)个管道,每个管道的最大大小为\(a\),每次等概率随机选一个没满的管道里放一个石子,当所有管道的大小都\(\geqb\)时停止,问装满的管道的期望个数,与\(998244353\)取模。\(1\len\le250,1\leb<a\le250\)。Solution先考虑一个引理:有\(n\)个集合,有
- 2024-01-29UOJ #33 树上 GCD
套路地,对每个\(g\in[1,n-1]\)求出有多少对无序对\((u,v)\)满足\(g|f(u,v)\),然后就可以用一个倒序枚举的\(\mathcalO(n\logn)\)的容斥求出答案。考虑点分治,对每个经过分治中心\(c\)的\(u\rightsquigarrow\text{lca}(u,v)\rightsquigarrowv\)只需分两种
- 2024-01-28Solution Set #9
在cdqz的集训结束了,虽然总榜比较好看但感觉只过了一堆平凡题。怎么一个月就省选了(恼)150【IOI2016】shortcut(拆绝对值)考虑确定了架桥架在哪里之后怎么算(经过桥的)直径。实际上就是\(\max(|pos_u-pos_x|+|pos_v-pos_y|+d_u+d_v)\)。大力转切比雪夫(大概)然后二分,先排除\(|pos_
- 2023-10-30UOJ #823. 【UR #26】铁轨回收
题面传送门拜谢zaky!首先考虑\(B_i\leq1\)的部分分,我们考虑采用一种“提前”的dp方法。我们设\(f_{i,j}\)表示从后往前考虑到第\(i\)个,仍有\(j\)个\(0\)需要变成\(1\)的方案数。每次转移的时候枚举当前这个值最终是什么,并选择\([i+1,n]\)中的一个数转移过去。
- 2023-10-04[UOJ#748] [UNR#6] 机器人表演
在这个科技发达的年代,真人表演已经落伍了。参加完UOI后,hehe蚤去到了下山市大剧院,观看下山市最火爆的机器人表演。机器人有时比人类更能抓住事情的本质。所谓表演,其实也就是开场有若干个机器人,中间有时一些机器人出现,有时一些机器人消失,最后谢幕还剩若干个机器人的过程。hehe
- 2023-08-31UOJ-783 新年的双区间操作
题意给定一个序列\(a\),给一个操作序列\(m\),每个操作形如\((l_i,r_i,x_i,l'_i,r'_i,y_i)\),表示如果区间\([l_i,r_i]\)最大值大于等于\(x_i\)则将区间\([l'_i,r'_i]\)对\(y_i\)取\(\max\)。现在进行\(q\)次修改,每次先将\(a_p\)修改为\(v\)(这个修改是累积