好吧,,
补一天题解。
1001 狼抓兔子
妥妥的网络流啊,难度仅次于草地排水,边都给出来了。就是注意反向边也要有流量就行。
1007 水平可见直线
这个题按斜率排序(注意不是绝对值),然后将直线入队,如果交点在上一次交点的左边则下面的直线被覆盖,
注意直线斜率想的的时候要按与y轴交点大小排序
1008 越狱
组合题,第一个由m种选择,后面的每一个都是m-1种选择,所以快速幂解决问题
1012 最大数
啊啊啊啊这个东西写线段树调了一上午,都疯了,下午写了个单调队列 几十B 一遍过,哎
#include<bits/stdc++.h> using namespace std; int a[200001],m[2000001]; int main(){ int n,d,l=0,x,ans=0; char f[4]; scanf("%d%d",&n,&d); while(n--){ scanf("%s%d",f,&x); if(f[0]=='A'){ a[++l]=(x+ans)%d; for(int i=l;i>=1;i--){ if(m[i]<a[l])m[i]=a[l]; else break; } } else { ans=m[l-x+1]; printf("%d ",ans); } } }
单调栈,单调队列,是用来记录某一个最优解起作用的区间。求定长区间最大值之类的。
对了这题现在学校题库还没过不知道为啥啊
1022 john
博弈论,SG定理最初级的应用,全部亦或起来就好。
1024 生日快乐
暴力dfs666
。。。bzoj又炸了