摘要:
题意 跑两边spfa的水题,注意判断有人才取最大值 代码 cpp include using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch'9'){ if(ch==' ') f= 1; ch=ge 阅读全文
posted @ 2019-08-27 09:47
End_donkey
阅读(149)
评论(0)
推荐(0)
摘要:
题意 1到n个自然数中选k个自然数要求两两不相邻,问有多少种方法,模m eg(1 3 5 ) 又是一道打表规律题,正常解法dp可以通过前缀和优化到O(N K)。另外我们可以重新定义F[I,J]表示从1到I中选择J个不连续数的方案数。通过考虑I选还是不选来进行状态转移。 1.如果不选I:则方案数为F[ 阅读全文
posted @ 2019-08-27 09:45
End_donkey
阅读(156)
评论(0)
推荐(0)
摘要:
T3 "颜色" 100/100 对于这题由于数据范围小,有一种神奇的做法,我们可以把每个值随机赋值,但是保证相同颜色的和为0,就代表消去了这个颜色,我们只要取寻找合法区间就行,合法区间的寻找只要找相同前缀和就行,因为相同前缀和之间这一段为0,也就代表这一段是合法区间。 代码 cpp include 阅读全文
posted @ 2019-08-27 09:42
End_donkey
阅读(129)
评论(0)
推荐(0)
摘要:
一道最短路的题,找一个买入和卖出相差最高的点即可,我们先以1为起点跑spfa,d1[x]不再表示距离而表示能够经过权值最小的节点的权值即 我们在建反图,对于n点再跑spfa,算出最大值即 cpp if(d2[y] using namespace std; const int N=100010,M=5 阅读全文
posted @ 2019-08-27 09:39
End_donkey
阅读(157)
评论(0)
推荐(1)
摘要:
题意 给定一个长度为N的数列A,以及M条指令 (N≤5 10^5, M using namespace std; const int maxn=500010; struct node{ int l,r; long long data; } t[maxn 4]; long long a[maxn],b 阅读全文
posted @ 2019-08-27 09:38
End_donkey
阅读(356)
评论(0)
推荐(0)
摘要:
给定长度为N的数列A,以及M条指令 (N≤500000, M≤100000),每条指令可能是以下两种之一: “2 x y”,把 A[x] 改成 y。 “1 x y”,查询区间 [x,y] 中的最大连续子段和,即 max(x≤l≤r≤y) { $\sum_{i=l}^r$ A[i] }。 对于每个询 阅读全文
posted @ 2019-08-27 00:53
End_donkey
阅读(191)
评论(0)
推荐(0)
摘要:
  
评论(1)
推荐(0)
摘要:
树状数组 1 单点修改,区间查询 这个没啥好讲的,修改加查询即可,查询时利用前缀和相减即可。 代码 cpp include using namespace std; const int maxn=1000010; int n,q,u,v,k,a[maxn]; long long c[maxn]; i 阅读全文
posted @ 2019-08-27 00:16
End_donkey
阅读(287)
评论(1)
推荐(0)

浙公网安备 33010602011771号