题目: 给n个数字,一段合法区间[l,l+m-1]要求max-min<=c 输出所有合法区间的左端点,如果没有输出NONE 题解: 单调队列同时维护最大值和最小值 #include<cstdio> #include<algorithm> #include<cstring> #define N 1000005 using namespace std; int n,m,c,Q[N],q[N],a[N],Ql,Qr,ql,qr,OK; int main() { scan…
多重背包二进制优化终于写了一次,注意j的边界条件啊,疯狂RE(还是自己太菜了啊啊)最辣的辣鸡 #include<bits/stdc++.h> using namespace std; int n,sum; ; ; ; const int inf=0x3f3f3f3f; int w[N*C],idx,num[N*C]; int b[N],c[N]; //面值 个数 int f[K],k; int main(){ scanf("%d",&n); ;i<=n;i++…