![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM/ICPC
02PHC
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #745 (Div. 2)C Portal
1.处理出f[i][j][k]f[i][j][k]f[i][j][k],表示第iii行从第jjj列到第kkk列里有多少个0002.容易想到O(n4)O(n^4)O(n4)的做法,枚举矩形的上边在第iii行的第jjj列到第kkk列,下边在第sss行但是题目最多只能O(n3)O(n^3)O(n3)3.考虑优化,将枚举上边和下边所在行的时间复杂度O(n2)O(n^2)O(n2)优化成O(n)O(n)O(n)假设枚举到了第iii行,mnmnmn表示前i−1i-1i−1行价值的最小值(但不包括第iii行的价值原创 2021-09-30 21:37:19 · 268 阅读 · 1 评论 -
HDU-6962 I love tree(树链剖分+线段树)
思路:如果是对区间[l,r][l,r][l,r]进行操作的话,对于x∈[l,r],w[x]+=(x−l+1)2x∈[l,r],w[x]+=(x-l+1)^2x∈[l,r],w[x]+=(x−l+1)2,令k=l−1k=l-1k=l−1,那么w[x]+=(x−k)2w[x]+=(x-k)^2w[x]+=(x−k)2,把括号拆开−>x2−2∗x∗k+k2->x^2-2*x*k+k^2−>x2−2∗x∗k+k2,那么就需要维护3个对于ttt次修改后的线段树∑i=1t1\sum_{i=1}^{原创 2021-07-26 08:49:05 · 228 阅读 · 0 评论 -
2021年HDU多校第二场第4题-6964 I love counting
思路:先用莫队统计每个块内的数的种类和每个数的种类再从高位到低位判断a,b,ca,b,ca,b,c之间的关系首先sss表示到 jjj 这一位满足aaa ^ s=bs=bs=b仅考虑第jjj位1)bbb的jjj这一位为1,a1,a1,a的jjj这一位为111那么只要c的j这一位为1,都能满足ccc ^ a<ba<ba<b2)bbb为1,a1,a1,a为000,那么只要ccc为000,都能满足ccc ^ a<ba<ba<b3)bbb为000,a为111ccc原创 2021-07-23 10:51:29 · 393 阅读 · 2 评论 -
2021年HDU多校第二场第11题-6971 I love max and multiply
maxa[i]maxa[i]maxa[i]表示maxmaxmax(a[j])(a[j])(a[j])(jjj&i=ii=ii=i)由于可能出现负数,所以还要处理最小值预处理出maxa,maxb,mina,minbmaxa,maxb,mina,minbmaxa,maxb,mina,minb#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using原创 2021-07-22 19:15:56 · 406 阅读 · 3 评论 -
矩阵(kuangbin专题十九)
HDU-5015题意:有一个矩阵横排第一行初始是0,233,2333,23333…,然后给出计算公式a[i][j] = a[i - 1][j] + a[i][j - 1],然后给出了n和m和第一列的各值要求计算a[n][m]的值。可以得出#include<iostream>#include<cmath>#include<algorithm>#include<cstring>using namespace std;typedef long原创 2021-07-14 09:05:07 · 120 阅读 · 0 评论 -
Codeforces Round #732 (Div. 2)D-AquaMoon and Chess
题意:给定01字符串,1表示这个位置有棋子,0表示这个位置为空,可以跳棋,就是1可以跨过一个1到0上,问最终状态有几个思路:首先能看出2个连续的1可以一直相互跳,那么可以让这些1都往前跳比如100110110010011011001001101100---->111110000011111000001111100000但是100110111010011011101001101110只能变成---->111110001011111000101111100010可以发现111110001原创 2021-07-12 00:36:49 · 343 阅读 · 0 评论 -
第十三届四川省赛 I - Monster Hunter
题目链接总体思路:二分加贪心贪心思路:1)先把3用完先把3用在血量大于等于3且血量为奇数的怪物上,使其变成一个偶数且不浪费再把3用再血量大于等于6的怪物上(一次要用2个),保证这个怪物的血量还是偶数,且不浪费再把3用再血量最多的怪物上2)再把2用完把2用再血量大于等于2的怪物身上,保证不浪费再把2用再血量为1的怪物身上(只剩下1了)3)最后把1用完#include<iostream>#include<algorithm>#include<cstring原创 2021-06-01 21:54:18 · 597 阅读 · 1 评论