首页 > 代码库 > BZOJ day8

BZOJ day8

好吧,,

补一天题解。

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\n",ans);
        }
    }
}
View Code

 

单调栈,单调队列,是用来记录某一个最优解起作用的区间。求定长区间最大值之类的。

对了这题现在学校题库还没过不知道为啥啊

1022 john

博弈论,SG定理最初级的应用,全部亦或起来就好。

1024 生日快乐

暴力dfs666

 

。。。bzoj又炸了

BZOJ day8