自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 The 2021 ICPC Asia Regionals Online Contest (I)

A线段树 + 二分线段树维护结束时间,二分查找合适的结点,找不到则执行下一个询问#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int> PII;const int N = 100010;PII p[N];int cnt[N];struct node{ int l,r; ll min_et;}tr[N*4];void pushu

2021-09-23 16:46:50 254 2

原创 hdu1754 I Hate It

传送门思路裸题Code#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 200010;int w[N];int n,m;struct node{ int l,r; int maxm;}tr[N*4];void pushup(int u){ tr[u].maxm=max(tr[u<<1].maxm,tr[u<<

2021-09-01 15:12:10 76

原创 hdu1166 敌兵布阵

传送门思路裸题Code#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 50010;ll tr[N];ll ans[N];int n;int lowbit(int x){ return x & -x;}void add(int x,int v){ for(int i=x;i<=n;i+=lowbit(i)) tr[i]+=

2021-09-01 15:08:32 68

原创 Function

传送门思路枚举 g(x) ( g(x) 的范围是[1,54] ),则 g(x)、a、b、c、d 已知,那么我们可以得到一个二次函数即:A * x^2 + B * xA:a * g(x) + bB:c * g(x) * g(x) + d * g(x)ps:我这里的 a、b、c、d、A、B 指得是我代码中的 a、b、c、d、A、BA > 0 时:开口向上,最小值在 x0 附近,x0:对称点 即 -B / (2 * A)A < 0 时:开口向下,最小值在两端A = 0 时:变为一条

2021-08-29 22:08:12 81

原创 Command Sequence

传送门思路不妨令:num_U:字符‘U’的数目num_D:字符‘D’的数目num_L:字符‘L’的数目num_R:字符‘R’的数目我们称呼区间内 num_U 等于 num_D 且 num_L 等于 num_R 的连续区间 [l,r] 为 ”好区间“给定我们一个只由 ‘U’ ‘D’ ‘L’ ‘R’ 四种字符组成的字符串,问:这样的“好区间”有多少个 ?对于好区间 [l,r],显然有:sum_U[r] - sum_U[l-1] = sum_D[r] - sum_D[l-1]sum_L[

2021-08-29 21:40:40 227

原创 Power Sum

传送门思路任意四个相邻的平方数,比如 a = i^2, b = (i+1)^2 ,c = (i+2)^2, d = (i+3)^2都满足 a - b - c + d = 4我们可以根据这个性质来凑 nCode#include <bits/stdc++.h>using namespace std;int n;int main(){ int T; cin>>T; while(T--){ cin>>n; string res,s1=

2021-08-29 21:09:43 268

原创 P4113 [HEOI2012]采花

传送门思路类似于 HH的项链本题题意:问区间[L,R]里,出现次数 >= 2 的元素有几种不同之处在于本题需要维护两个lastlast1[i]:i 上一次出现的位置last2[i]:i 上上次出现的位置对于一个元素 x ,当它第一次出现时,什么都不发生,同时更新 last1当它的 last1[x] 存在时,在 last1[x] 位置上 加1,同时更新 last1 和 last2当它的 last2[x] 存在时,在 last1[x] 位置上 加1, 在 last2[x] 位置上 减1,

2021-08-23 18:35:55 59

原创 P1972 [SDOI2009]HH的项链

传送门思路题意概括:问 [L,R] 里,有多少种数字 ?在以 R 为右端点的区间里,对于某一种数字,我们只关心 它最后一次出现的位置我们只在其最后一次 出现的位置上 加 1 ( add 操作 ),其余出现的位置都保持为 0比如数列:1、3、3、1当 R = 4 时,进行 add 操作后,各位置上的数为 0、0、1、1此时,无论 左端点 L (L <= R)取值为多少,[L,R] 里的数字种类 都等于 sum(R)- sum(L - 1)对于 m 个询问,若每次都遍历询问区间 [Li,R

2021-08-22 23:59:01 53

原创 P3586 [POI2015]LOG

P3586 [POI2015]LOG思路显然,he >= (c-k)*s 时,输出 TAK,否则 NIEc 和 s 的含义如题目he 的含义:小于 s 的数 的和k 的含义:大于等于 s 的数 的数目问题转化为 快速求 he 和 k:使用树状数组显然 我们先需要离散化:将 m 个询问里的 a 和 s 进行离散化然后 维护两个树状数组:对于 k :我们可以维护一个树状数组 tradd(tr,x,v) 表示:让数字 x ,其数目 + vsum(tr,x) 表示:大小在 [1,x]

2021-08-22 18:00:37 158

原创 POJ 2253

Frogger从 点 1 到点 2 有多条路径,每条路径有个 最远跳跃距离,问这些最远跳跃距离中 最小的值是多少 ?Code#include <cmath>#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef pair<int,

2021-07-15 19:24:57 46

原创 POJ 2387

Til the Cows Come Home思路dijkstra 模板题 不作解释 .Code#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 1010;bool st[N];int dist[N];int g[N][N];int n,m;int dijkstra(){ memset(dist,0x3f

2021-07-14 17:57:14 43

原创 博弈论

博弈论大纲—— 巴什博弈、威佐夫博弈、尼姆博弈一、巴什博弈 (一堆物品 两人取)只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保

2021-03-19 22:02:51 960

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除