随笔分类 - J- 其它=====================
摘要:Link: 传送门 代码量很少的一套思维题 A: 试一试发现最后状态一定是所有$min,max$间$gcd$的倍数 直接判断数量的奇偶性即可 #include <bits/stdc++.h> using namespace std; #define X first #define Y second
阅读全文
摘要:Link: P1084 传送门 Solution: 感觉NOIP T3也是有点东西的…… 将该题转化为最大值最小问题后想到二分答案 接下来考虑$check$时如何贪心: 由于除了在根节点所有军队都只往上跳明显采取倍增的方式 记录所有能到达根节点的军队和根节点下所有未被封死的子树 将两个序列从小到大排
阅读全文
摘要:Link: Codeforces #172 传送门 A: 一眼看上去分两类就可以了 1、每个矩形只有两条边相交,重合的形状为菱形 2、每个矩形四条边都有相交 对于情况1答案为$h*h/sin(a)$ 对于情况2可以列出一个二元一次方程组,手动解一下就好了 不过计算几何确实容易写挂啊…… 有几个注意点
阅读全文
摘要:Link: Codeforces #196 传送门 A: 枚举 #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef long long ll; typedef pair<int,
阅读全文
摘要:Link: Codeforces #190 传送门 A: 明显答案为$n+m-1$且能构造出来 #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef long long ll; t
阅读全文
摘要:Link: Codeforces #192 传送门 前两天由于食物中毒现在还要每天挂一天的水 只好晚上回来随便找套题做做找找感觉了o(╯□╰)o A: 看到直接大力模拟了 但有一个更简便的方法,复杂度为$O(被禁止的格子数)$ 如果将每个黑格子上下左右四条线都染上色 可以发现一个格子最终无法被“净化
阅读全文
摘要:Link: P3709 传送门 Solution: lxl出的语文题 其实转化一下就是求将当前区间最少拆分成多少个严格单调上升序列(可不连续) 再转化一下就是求区间内的众数个数 本来求众数的套路是主席树+二分 但此题不要求在线,用莫队同时维护$i$的出现次数$cnt[i]$和出现次数为$i$的数的个
阅读全文
摘要:Link: BZOJ 3781 传送门 Solution: 莫队裸题,只不过把维护的值改成了$\sum cnt[i]^2$ Code:
阅读全文
摘要:Link: BZOJ 1878 传送门 Solution: 很久以前这道题我是用$BIT$过的 思路非常简单:离线将询问排序,记录每个点同一颜色的后继节点 随着询问左边界的递增,将处于两次左边界间的节点从$BIT$中删去,而加入其后继节点的位置 接下来统计处于$[l,r]$间的数的个数就好了 同时这
阅读全文
摘要:记录下一开始写错的两道水题 E: 先建出直径,然后在保证直径不变的情况下按照最大度数贪心就好了 注意一下一开始的特判 #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef pair
阅读全文
摘要:Link: P2698 传送门 Solution: 对于可行区间$[L,R]$,随着$L$的递增$R$不会递减 因此可以使用尺取法来解决此题:不断向右移动左右指针,复杂度保持线性 同时为了维护区间内的最值,要设立两个单调队列来维护最大/最小值 每次当$L$增加时,要从队列头部删去小于$L$的节点(如
阅读全文
摘要:Link: AGC004 传送门 A: …… #include <bits/stdc++.h> using namespace std; long long a,b,c; int main() { scanf("%lld%lld%lld",&a,&b,&c); if(a%2==0||b%2==0||
阅读全文
摘要:Link: P2397 传送门 Solution: (1)在这里记录一个小小的黑科技:摩尔投票法 (线性时间复杂度,$O(1)$的空间复杂度求众数) 从数组的第一个元素开始,假定它代表的群体的人数是最多的 设置一个计数器,在遍历时遇到不同于这个群体的人时就将计数器-1,遇到同个群体的人时就+1 只要
阅读全文
摘要:Link: BZOJ 1293 传送门 Solution: 这题直接上尺取法就行了吧 先将每种颜色第一个放入优先队列,用$mx$维护当前的末尾位置 每次取出第一个颜色,更新答案。将其下一个放入队列中去,更新$mx$ Tip:此题BZOJ无故TLE,本机和Luogu都能AC Code:
阅读全文
摘要:Link: AGC002 传送门 A: …… #include <bits/stdc++.h> using namespace std; int a,b; int main() { scanf("%d%d",&a,&b); if(a>0) puts("Positive"); else if(a<=0
阅读全文
摘要:Link: ARC060 传送门 C: 由于难以维护和更新平均数的值: $Average->Sum/Num$ 这样我们只要用$dp[i][j][sum]$维护前$i$个数中取$j$个,且和为$sum$的个数 最后统计$dp[n][k][k*a]$即可 这样就得到了$O(n^4)$的解法 #inclu
阅读全文
摘要:Link: AGC001 传送门 A: …… #include <bits/stdc++.h> using namespace std; long long res=0; int n,dat[500]; int main() { scanf("%d",&n); for(int i=1;i<=2*n;
阅读全文
摘要:Link: BZOJ 1789 传送门 Solution: 感觉$n\le 50$可以随便乱搞啊…… 这里我是先找到3条链的失配位置,再找到这之后其中2条链最远的失配位置,统计即可 Code:
阅读全文
摘要:Link: BZOJ 4144 传送门 Solution: 一道不错的图论综合题 因为只询问关键点,因此重点是要求出关键点之间的最短路,以最短路建图 记$nst[i]$为离$i$最近的关键点:可以发现$A->B$的最短路径上,一定是前一半$nst[i]$为$A$,后一半$nst[i]$为$B$ 否则
阅读全文
摘要:Link: BZOJ 1794 传送门 Solution: IOI2008官方题解:传送门 要求序号,其实就是算字典序比其小的序列个数 从而使用数位$dp$的思想来解题,关键在于维护序列要$balance$这个条件 可以将$P$看作$-1$,而将$L$看作$+1$,最终要保证整个序列在一个宽最多为2
阅读全文

浙公网安备 33010602011771号