0x02 枚举、模拟、递推

1、TYVJ1266(这站是不是已经倒闭了啊) USACO陈年老题,对于这种开关问题啊,最多只按一次,而且第一行随便按完下面的就全确定了,类似的还有固定翻转一个长度的区间,这个也是最多翻一次的而且翻的次数为n-L

2、POJ1958 四塔的汉诺塔问题。但是好像是弱化的二维DP递推,马马虎虎吧

3、bzoj1218 陈年老题,二维前缀和+老古董套路容斥

4、POJ3263 有点意思的题,假如我做的话就会强行差分约束,但是我不能确定类spfa的做法能否满足。正解是对于两个个可以相互看到的点,当然先是看作一个约束条件,他们之间的点一定比他们要至少小1。那么就是区间修改-1,用差分数组。(想到GDOI左老师的题,不定区间用差分转化)
这题还有个小点要注意。
对于两个约束区间,要么是包含关系,要么是不相交,否则矛盾。
细节还挺多

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<map>
using namespace std;
map<int,bool>mp[11000];

int c[11000];
int main()
{
    int n,T_T,H,Q;
    scanf("%d%d%d%d",&n,&T_T,&H,&Q);
    while(Q--)
    {
        int l,r;
        scanf("%d%d",&l,&r);
        if(l>r)swap(l,r);
        l++,r--;
        if(r>=l&&mp[l][r]==false)
        {
            mp[l][r]=true;
            c[l]--;c[r+1]++;
        }
    }
    for(int i=1;i<=n;i++)
        c[i]+=c[i-1], printf("%d\n",H+c[i]); 
    return 0;
}
POJ3263

 

posted @ 2018-05-13 16:06  AKCqhzdy  阅读(149)  评论(0编辑  收藏  举报