随笔分类 - 题解
摘要:1 tran 题意:给出一个图,求从任一位置射入光束后光束存在的最长时间与射入方向。若存在多种时间相同的,输出字典序最小的方案。 题解:比较water的大模拟,题意看对很快能想出来 CODE #include using namespace std; #define re register #def
阅读全文
摘要:据说这题是要最小表示法做的,但我打算先朴素hash一波。 结果过了。。。 思路如下: 首先看题,发现是六元组,"6"确实不大。于是想到把雪花hash了。 对于hash值相同的一些雪花,用O((num[hash]2)∗(62))的时间复杂度来检查其中是否有符合条件的一组存在。(num[x]表示ha
阅读全文
摘要:传送门 对每个点定义(u,t,0/1)为编号为u的人在t时刻是活/死。 当u在t时刻死亡,那他在t+1时刻也必然死亡,(u,1,t)->(u,1,t+1) 当u在t+1时刻活着,那他必然在t时刻也活着,(u,0,t)->(u,0,t-1) 再对两个限制条件分别连边, 限制1: (t,x,1)→(t+
阅读全文
摘要:传送门 题意:给一个序列a[1],a[2],a[3]...a[n],求其中连续的子序列A[L],A[L+1],...,A[R],使其权值 W(L,R)=(R-L+1)×gcd(A[L],...,A[R])最大。 思路: 简单的一个分治思想。 先想想线段树里询问怎么做的? 是不是把这个区间从中间砍开。
阅读全文
摘要:传送门 首先分析问题,我们要求出所有的子矩形,不妨考虑以每一点为右下角的子矩形的个数,加起来正好就是总的子矩形数了。 然后考虑每一个点为左下角时的方案数,我们考虑每在它左上的点是否可以作为矩形的左上角。 如图 01111 11011 10111 10111 1111X 我们考虑以X为子矩形右下角的的
阅读全文
摘要:传送门 老早以前做的题,出了点小锅一直没修,今天突然来了兴致 于是 修了下。。。。。。 大概就是按原顺序编号,然后把编号丢到第二个序列中,求遍逆序对(这里用树状数组求)。 而关于存人名的问题 >map 1 #include<bits/stdc++.h> 2 using namespace std;
阅读全文
摘要:传送门 就是一道LCA的应用; 不过重点(个人观点,勿喷)在于 想到这条{最长的边最小值}的路径在MST(最小生成树)上; 想到这一点之后,基本就会了。 还有第二个小问题,怎么lca求路径最大值。 ( 思 考 空 间 ) ANS:蛮simple的,只要在跳lca的时候记录最大值就可以了。 代码: 1
阅读全文
摘要:传送门 简单题意:给n个点m条边无向图,每次询问两个点之间是否有长度为d的路径(不一定是简单路径)。即可以重复走一条边。 思路: 蛮水的叭。我们知道路径可以重复走,所以只要找到一条和d奇偶性相同的最短路,就可以做到了。 因为可以在一条边上不停来来回回,也就是在最短路上加上了一个偶数-->偶数大小任意
阅读全文