题意: 给定一个数列,每次询问一个区间,问这个区间中的值可组成的周长最大的三角形的周长. 题解: 定理1:给定一些值,这些值中组成边长最大的三角形的三条边的大小排名一定是连续的. 证明:假如第k大,第k+1大,第k+2+b(b>0)大的三条边组成了一个边长最大的三角形,那么较小的两条边加起来长度大于第三边,又因为第k+2大的边比第k+2+b大的边长,因此把第k+2+b大的边换成第k+2大的边组成的三角形边长一定比原来大,矛盾. 定理2:如果三角形边长被限制为1e9以内的正整数,那么如果某组值存在…
Keen On Everything But Triangle 感觉最近多校好多主席树的亚子,但是本人菜得很,还没学过主席树,看着队友写题就只能划水,\(WA\)了还不能帮忙\(debug\),所以深思熟虑之后决定学习一下主席树. 题意 问在\([l,r]\)区间内取三个数字构成三角形,问能构成的三角形最大的周长是多少?如果不能构成三角形输出\("-1"\). 思路 三角形构成的条件: 三条边 两边之和大于第三边 然后呢,我们要找最大的周长,那么我们很容易想到取最大的三条边,如果不行就…
题目链接 题意 : 给出n个问题,每个问题有两个参数,一个ei(所要耗费的时间),一个ki(能得到的score).每道问题需要耗费:(当前耗费的时间)*ki,问怎样组合问题的处理顺序可以使得耗费达到最少. 思路 : 如果有两个样例,e1=10,e2 = 20,k1 = 1 ,k2 = 3 : 先解决第一个问题 : 10 * 1 + (10 + 20 ) * 3 先解决第二个问题 : 20 * 3 + (20 + 10) * 1 展开之后发现两个只有10 * 3 与 20 * 1是不同的.所以排序…
题目链接 有个结论: 平面坐标系上,坐标为整数的情况下,n个点组成正n边形时,只可能组成正方形. 然后根据这个结论来做. 我是先把所有点按照 x为第一关键字,y为第二关键字 排序,然后枚举向量 (p[i]->p[j]) (j>i),只判断这个向量左侧可否存在两个点与它一起构成一个正方形.这样算的结果是,计数每个正方形时,它的靠右和靠下的两条边都会为ans贡献一个单位,所以最后ans要除以2. #include<bits/stdc++.h> using namespace std;…
HDU6602 Longest Subarray 线段树 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6602 题意: 给你一段区间,让你求最长的区间使得区间出现的数字的个数大于k 题解: 比较巧妙的的线段树更新的做法 我们选择的区间吗,该区间内出现的数字的个数必须要满足条件 我们转换一下,我们以当前点为右端点,往左找一个满足条件的左端点,即可更新答案 我们将每个点给予一个权值C-1,更新这个点的数字上次出现的位置之前到现在这个位置-1的一段减1…
题意: 一个军队有n人,你可以给他们每个人安排战士或者法师的职业,有m对人有组合技,组合技的信息是a,b,c,代表如果这两个人是两个战士,则组合技威力为a,一个战士一个法师,威力为b,其中b=a/4+c/3,两个法师,威力为c,求最大的威力. 题解: 这道题给出了一个最小割的清奇思路. 首先不去想边权,只想连通性,设源点为战士,汇点为法师,中间的点记为军队中的人,人和源点汇点之间连边,有组合技的人两两之间连边,简单起见,从只有两个人的情况讨论,这张图割完了只能是如下形式: (两个战士) (两个法…
题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求出这个子序列的逆序数对,加到cnt里,重复这个过程,直到最后取出的为空. 题解: 先不考虑第一步随机从[1,N]里产生一个n,只考虑n给定的情况,求出了f[n],那么最后的结果就是 $  ans[N]=\frac{\sum_{n=1}^N f[n]}{N} $ 赛时和队友利用找规律法和暴力模拟法推出…
题意: 找出这样的回文子串的个数:它本身是一个回文串,它的前一半也是一个回文串 输出格式要求输出l个数字,分别代表长度为1~l的这样的回文串的个数 题解: (回文自动机和回文树是一个东西) 首先用回文自动机求出所有本质不同的字符串,以及它们出现的次数,把前半部分的字符串和后半部分的字符串分别hash一遍,看他们是不是相等. 构造好回文自动机后,在回文自动机上dfs,向下传递当前字符串长度,正向,反向hash值,每次递归因为只增加了一个字母,所以可以O(1)计算. #include "bits/s…
题意: 给你一个数x,允许你多次询问yi,然后回答你x xor yi 是否等于yi,询问尽量少的次数以保证能求出xi是几,求出这样询问次数最少的询问方案数. 结果mod1e6+3 题解: 队友赛时很快想(cai)出最优方案是每次只让yi的一位是1,因此最优方案数是n! 然后很快wa/t到哭 粘了个几百行的二分求阶乘的板子,预处理出一堆0,一脸懵逼地除虫 最后终于发现,TMD,n!mod 1e6+3 在n>=1e6+3的情况下,都等于0 #include<iostream> #define…
2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n-1,从0号点出发,每次向左走或者向右走的概率是相同的,问你出发后,经过n-1个点后,恰好到达点m的概率是多少,答案是一个前缀积 题解: 讨论两个点的情况: 点0->1的期望是1 讨论三个点的情况 假设我们要到点3,我们必须经过点2,然而我们到了点2可能会再回到点1再到达点3,所以我们讨论必须经过的…