传送门 BZOJ传送门(权限题) 看到n小于20,就可以想到搜索 所有的数要么在集合a中,要么在集合b中,要么都不在 可是3^n复杂度会炸,我们考虑优化 可以利用折半搜索,将前面一半的所有可能情况与后一半列举 排序扫描统计答案 由于选择情况可能会重复,我们还要记录一下状态,然后在统计时判断一下 统计时会将一个都不选的情况计算进去,所以ans要-1 # include<iostream> # include<cstdio> # include<cmath> # inclu…
题目链接:https://www.luogu.com.cn/problem/P1036 题目描述 已知 \(n\) 个整数 \(x_1,x_2,-,x_n\) ,以及 \(1\) 个整数 \(k(k<n)\) . 从 \(n\) 个整数中任选 \(k\) 个整数相加,可分别得到一系列的和. 例如当 \(n=4,k=3\) , \(4\) 个整数分别为 \(3,7,12,19\) 时,可得全部的组合与它们的和为: \(3+7+12=22\) \(3+7+19=29\) \(7+12+19=38\)…
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座山,只能单向通过,并会耗费小X一定时间. 小X现在在1号山,他的目的是n号山,因为那里有火车站. 然而小X的体力是有限的.他每通过一条羊肠小道,就会变得更疲劳,导致他通过任意一条羊肠小道的时间都增加1. 输入格式: 第一行两个数,n,m 第2行到第m+1行,每行3个数A,B,C,表示A.B之间有一条…
[洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m 名学生,方阵的行数为 n ,列数为 m . 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中的学生从 1 到 n×m 编上了号码(参见后面的样例).即:初始时,第 i 行第 j 列 的学生的编号是 (i−1)×m+j . 然而在练习方阵的时候,经常会有学生因为各种各样的事情需要离…
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) 均为正整数). 输入格式 输入共 \(n + 2\) 行. 第一行包含 \(2\) 个整数 \(n, m\) ,每两个整数之间用一个空格隔开. 接下来的 \(n+1\) 行每行包含一个整数,依次为 \(a_0,a_1,a_2\ldots a_n\). 输出格式 第一行输出方程在 \([1,m]\)…
洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格式 输入格式: 第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li. 输出格式: 切割后每条绳子的最大长度. 输入输出样例 输入样例#1: 4 11 8.02 7.43 4.57 5.39 输出样例#1: 2.00 说明 对于100%的数据 0<Li<=100000.00 0<n&l…
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [SCOI2008]配对 感觉是道很好的推断题 贪心 想到贪心的结论就很容易,没想到就很难做出来了 结论:对\(A,B\)数组分别排序之后,在\(A\)中选第\(i\)个数,与之配对的数一定在\(B[i-1]\)~\(B[i+1]\)内 其实证明是很好证的,在与你是否往这方面想了... 因为题目有一个很…
洛谷P1378 油滴扩展 直接暴力搜索更新答案就可以了. 时间复杂度为 \(O(n!)\) . #include<stdio.h> #include<stdlib.h> #include<math.h> #include<algorithm> using namespace std; const int maxn = 10; const double pi = acos(-1.0); int vis[maxn]; double x[maxn], y[maxn…
Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证坐标单调递增. 数据范围:$1<=n<=50$ Solution 设 $f[i][j][0/1]$ 为已经关闭区间 $[i,j]$ 所有灯,此时站在 左端点 $/$ 右端点 的最小耗电. 设 $d(i,j)$ 为第 $i$ 盏路灯和第 $j$ 盏路灯之间的距离,$w(i,j)$ 为 除了 $[i,…
[BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda. 现在freda要在这里卖萌...它要找一块矩形土地,要求这片土地都标着'F'并且面积最大. 但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看f…
BZ链接 洛谷链接 这道题真是丧心病狂.... 应该很容易就可以看出做法,但是写代码写的....... 思路很简单,用一个平衡树维护一下所有的操作就好了,重点讲解一下代码的细节 首先如果按照常规写法的话,splay的节点要开到4000000, 直接炸飞, 由于任意时刻splay中的节点最多只有500000个,我们只需要开500000个节点就好了 然后将没有用的节点回收起来,下一次插入是插入到这些节点中 然后就是插入是将要插入的所有数字build成一颗平衡树,直接接在要插入的位置,这样会快很多 维…
题目链接 洛谷链接 我们发现题目要我们求的num[i]东西本质上其实是 求有多少以i结尾的非前缀且能与前缀匹配的字符串,而且要求字符串长度小于(i/2) 我们先不考虑字符串长度的限制,看所有以i结尾的非前缀且能与前缀匹配的字符串如何计数 考虑到KMP算法的next数组求解的过程,大家应该都想到i结尾的非前缀且能与前缀匹配的字符串的总数就是next[i]跳到0的所跳的次数 为什么是这样的呢? 如上图所示,其中绿色的串与红色的串是匹配的,若还要寻找匹配的串 不难发现所有以红色结尾处结尾所能匹配的串都…
//bzoj上的题面太丑了,导致VJ的题面也很丑,于是这题用洛谷的题面 题面描述 XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假. XOR 运算的真值表如下(\(1\) 表示真, \(0\) 表示假): 而两个非负整数的 XOR 是指将它们表示成二进制数,再在对应的二进制位进行 XOR 运算. 譬如 \(12\) XOR \(9\) 的计算过程如下: 故 \(12\) XOR \(9\) = 5$. 容易验证, XOR 运算满足交换律与结合律,故计算…
题目传送门:洛谷P3307.这题在bzoj上是权限题. 题意简述: 这题分为两个部分: ① 有一些珠子,每个珠子可以看成一个无序三元组.三元组要满足三个数都在$1$到$m$之间,并且三个数互质,两个珠子不同当且仅当这个三元组不同.计算有多少种不同的珠子. ② 把这些珠子串成一个环,要满足相邻的珠子不同.两个环不同当且仅当旋转任意角度后仍然不同.计算有多少种不同的环. 题解: 分成两部分做. 第一部分: 考虑计算三元组的个数,转无序为有序,再去重. 答案=(三个都不同的有序三元组方案)/6+(两个…
题目链接 洛谷 bzoj 题解 整体二分 Code #include<bits/stdc++.h> #define LL long long #define RG register using namespace std; inline int gi() { RG int x = 0; RG char c = getchar(); bool f = 0; while (c != '-' && (c < '0' || c > '9')) c = getchar();…
题目描述 小B有n个下属,现小B要带着一些下属让别人拍照. 有m个人,每个人都愿意付给小B一定钱让n个人中的一些人进行合影.如果这一些人没带齐那么就不能拍照,小B也不会得到钱. 注意:带下属不是白带的!!!对于每个下属,如果他带了那么小B需要给他一些钱,保证当他拍照时配合. 请问,小B的净收益最多是多少. 输入输出格式 输入格式: 第1行有2个正整数m和n(0<m,n<=100).接下来的m行,每行是一个要求拍照的人的有关数据.第一个数是他同意支付该合影的费用:接着是该合影需要的若干下属的编号…
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \(T_1=G(V, E_1)\) 和 \(T_2=G(V, E_2)\),定义这两棵树的权值 \(F(E_1, E_2)\) 为 \(y\) 的 \(G'=(V,E_1\cap E_2)\) 的联通块个数次方. 即 \(F(E_1, E_2) = y^{n - |E_1\cap E_2|}\)(因为…
题目传送门:洛谷 P4128. 计数好题,原来是 13 年前就出现了经典套路啊.这题在当年应该很难吧. 题意简述: \(n\) 个点的完全图,点没有颜色,边有 \(m\) 种颜色,问本质不同的图的数量对质数 \(p>n\) 取模. 本质不同指的是在点的 \(n!\) 种不同置换下不同. 题解: 首先有 \(\mathrm{P\acute{o}lya}\) 定理:一类元素在一个置换群的作用下本质不同的元素(不同等价类)个数等于 \(\frac{1}{|G|}\sum_{g\in G}M(g)\).…
题目传送门:洛谷 P4559. 题意简述: 有 \(n\) 个学生,编号为 \(i\) 的学生有一个位置 \(a_i\). 有 \(m\) 个询问,每次询问编号在 \([l,r]\) 区间内的学生跑到区间 \([k,k+r-l]\) 中的位置花费的距离总和的最小值. 每个学生的初始位置互不相同,最终到达的位置也必须互不相同. 题解: 不难证明,学生跑到最终的位置时,他们的相对位置不改变至少是最优解之一,这可以脑补一下. 所以我们只需要求最终相对位置不变时的答案即可. 因为学生两两位置不同,所以最…
令人抓狂的整体二分题.根本原因还是我太菜了. 在学校写了一个下午写得头晕,回家里重写了一遍,一个小时就写完了--不过还是太慢. 题目传送门:洛谷P4175. 题意简述: 一棵 \(n\) 个结点的树,每个点有点权. 有 \(m\) 次操作,每个操作要么是更改单点点权,要么是查询树链上第 \(k\) 大点权. 题解: 树套树固然可以,但是整体二分也很好. 整体二分就是对于所有的询问一起二分答案,在二分区间范围内的查询和修改一并下传. 这题把整体二分基础题的操作搬到了链上,但是实现方法并没有太大不同…
题目传送门:洛谷P4592. 题意简述: 题面说的很清楚了. 题解: 发现没有修改很快乐.再看异或最大值操作,很容易想到可持久化 01trie. 这里要把 01trie 搬到树上,有点难受. 树剖太捞了,考虑 DFS 序. 子树查询转成 DFS 序上一段区间,而链上查询转成两条链. 所以维护两(个?)种可持久化 01trie,一个按照 DFS 序,另一个按照从根到结点的路径. 还要求 LCA,这里我写了个倍增. #include <cstdio> inline int Max(int x, i…
题目传送门:洛谷 P4248. 题意简述: 定义两个字符串 \(S\) 和 \(T\) 的差异 \(\operatorname{diff}(S,T)\) 为这两个串的长度之和减去两倍的这两个串的最长公共前缀的长度. 给定一个字符串,定义从第 \(i\) 个字符开始的后缀为 \(Suf_i\). 求 \(\sum_{1\le i<j\le n}\operatorname{diff}(Suf_i,Suf_j)\). 题解: 化简式子,原式等于 \[\begin{align*}&\left(\su…
题目传送门:洛谷P4093. 题意简述: 给定一个长度为 \(n\) 的序列 \(a\). 同时这个序列还可能发生变化,每一种变化 \((x_i,y_i)\) 对应着 \(a_{x_i}\) 可能变成 \(y_i\). 不会同时发生两种变化. 需要找出一个最长的子序列,使得这个子序列在任意一种变化下都是不降的. 只需要求出这个子序列的长度即可. 注意:可以不发生任何变化. 题解: 记 \(f[i]\) 为以第 \(i\) 项结尾的子序列最长长度. 则有转移:\(f[i]=\max_{j<i}(f…
枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) { ) * ; ; j <; j++) { ) { ) * ; ; l < ; l++) { ) { cout << i << j << l << endl; flag = ; } } } } } } % k == ) { cout <<…
1.普通版 第一眼看到这个题,我脑海里就是,“我们是不是在哪里见过~”,去年大一刚学C语言的时候写过一个类似的题目,写了九重循环....就像这样(在洛谷题解里看到一位兄台写的....超长警告,慎重点开) #include <stdio.h> #include <cstdlib> int main() { ]; ] = ; i[] <= ; i[]++) { ] = ; i[] <= ; i[]++) { ; ] == i[]) p1 = ; ) { ] = ; i[]…
题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E KL KK E E KL KK KV 其含义为: L+L=L,L+K=K,L+V=V,L+E=E K+L=K,K+K=V,K+V=E,K+E=KL -- E+E=KV 根据这些规则可推导出:L=0,K=1,V=2,E=3 同时可以确定该表表示的是4进制加法 //感谢lxylxy123456同学为本题新加一组数据 输入…
洛谷传送门,BZOJ传送门 树网的核 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P的距离为该点与P上的最近的结点的距离:…
题目:https://www.luogu.org/problemnew/show/P4106 https://www.lydsy.com/JudgeOnline/problem.php?id=3614 可以先把给出的东西排序成这样: -1 -1 -1 -1 -1  1 -1  1 -1 -1  1  1 1 -1 -1 1 -1  1 1  1 -1 1  1  1 就是后面看成低位.前面看成高位,1看成1.-1看成0的二进制的顺序. 发现把第1行和第2行相加再除以2,得到的就是与 x3 无关的…
大模拟好啊! 万一远古计算机让我写个解释器还真是得爆零了呢. 题目背景 「千歌です」(我是千歌).「曜です」(我是曜).「ルビィです」(我是露比).「3人合わせて.We are CYaRon! よろしくね!」(三人在一起,我们是CYaRon!多多指教哦!) CYaRon!的三人在学习了编程之后,决定发明一种自己的编程语言,她们称为CYaRon!语. (ltt: 明明是我帮她们发明的.) 可是,因为洛谷评测机这时候突然爆了,ltt没有时间再帮CYaRon!的三位小姐姐写CYaRon!语的解释器了.…
题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”.“222”和“1”. 请你写一个程序依次完成这m个操作. 输入输出格式 输入格式: 第一行包含2个整数n和m,分别表示节点数和操作数: 第二行包含n个正整数表示n个节点的初始颜色 下面 行每行包含两个整数x和y,表示x和y之间有一条无向边. 下面 行每行描述一个操作: “C a…