首页 > TAG信息列表 > EZOJ
EZOJ 刷题笔记(1)
EZOJ65 A 当 $p_i=i$ 时强制让 $p_i$ 与 $p_{i+1}$ 交换,这样交换是对的并且是最优的。 EZOJ20 ymh喜欢函数 二分神题,最优选择的答案一定是一个下凸函数,所以先特判掉 $t=0$ 的情况是否可行,然后再二分求 $t$ 即可。 若 $t=0$ 时答案小于 $S$,则函数单调下降的部分小于 $S$,二分的区间EZOJ #375高速公路
分析 我们可以先跑一遍全价的最短路 之后我们枚举这个第k大的价格w[i] 将其它边减这个边的权值和0取max 在跑出最短路之后加上减去的费用,即w[i]*k 我们发现如果价值大于w[i]的边小于k个 那么由于小于w[i]的边经过之前操作后权值会比原先大所以一定不有 所以我们不难得出一定是这EZOJ #361地理
分析 就是分别维护l和r的个数 然后对于询问区间[L,R] 之后l树状数组中小于等于R的个数减掉r树状数组中小于L的即可 代码 #include<bits/stdc++.h>using namespace std;int n;struct BIT { int d[100100]; inline int lb(int x){return x&(-x);} inline void add(int x){EZOJ #362历史
分析 就是保存前pi-1个数每个ai出现多少次 然后维护这些数当前剩余的最大值 每次和新加进来的比较即可 如果新的大直接取 否则新的最大值一定不大于原来的最大值 因此o(n) 代码 #include<bits/stdc++.h>using namespace std;int n,m,a[100100],p[100100],sum[100100],cnt;inlineEZOJ #227
传送门 分析 我们发现第一段数和最后一段数对答案的贡献系数为1/-1,其余为0/2/-2 而且对于相邻两段不能系数均非0 于是可以dp 代码 #include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cctype>#include<cmath>#include<cstdlib>#EZOJ #201
传送门 分析 这个题和寿司晚宴有点像 我们知道大于$\sqrt n$的质因子最高就是一次 于是我们对所有数以他的大质数为关键字排序 设dp[i][p2][p3][p5][p7][p11][p13][0/1]表示考虑到第i个,小质数分别为几次,大质数是否选了 对于每一段大质数我们用一个别的数组转移,然后在这一段结束之后