重走长征路---OI每周刷题记录---2月1日 2015

总目录详见https://blog.csdn.net/mrcrack/article/details/84471041

做题原则,找不到测评地址的题不做。2018-11-28

重走长征路---OI每周刷题记录---2月1日  2015

本周共计30题+题

测评地址:

斜率优化:

1.「火影完结纪念赛」木叶的军师

dp:

2.「cf506A」Mr. Kitayuta, the Treasure Hunter

tarjan+并查集:

3.「cf506B」Mr. Kitayuta’s Technology

虚树+树形dp:

4.「bzoj2286」[Sdoi2011]消耗战 

5.「bzoj3611」[Heoi2014]大工程

gcd+随机化:

6.「cf364D」Ghd

模拟:

7.「bzoj3856」Monster 

8.「cf508A」Pasha and Pixels

并查集:

9.「bzoj1370」[Baltic2003]Gang团伙   //在线测评地址https://www.luogu.org/problemnew/show/P1892

状压dp:

10.「bzoj2073」[POI2004]PRZ

线段树+筛法+逆元+欧拉函数:

11.「bzoj3813」奇数国

dfs:

12.「poj2362」Square

图论+tarjan:

13.「cf403C」Strictly Positive Matrix

graham+旋转卡壳:

14.「poj2187」Beauty Contest

上下界费用流:

15.「bzoj3876」[Ahoi2014]支线剧情

treap+中位数:

16.「vijos1459」车展

dfs序+主席树:

17.「bzoj3772」精神污染

构造:

18.「cf508E」Arthur and Brackets

贪心:

19.「cf508B」Anton and currency you all know 

20.「cf508C」Anya and Ghosts

21.「cf509B」Painting Pebbles 

22.「cf509C」Sums of Digits

hash+树同构+树形dp:

23.「bzoj3162」独钓寒江雪

最小割:

24.「bzoj2229」[Zjoi2011]最小割

treap+dp:

25.「bzoj3173」[Tjoi2013]最长上升子序列

平面图+2-sat:

26.「bzoj1997」[Hnoi2010]Planar

状压dp:

27.「bzoj2004」[Hnoi2010]Bus 公交线路

并查集+置换:

28.「bzoj1998」[Hnoi2010]Fsk物品调度

模拟:

29.「cf509A」Maximum in Table

数学:

30.「cf509E」Pretty Song
 

题解:

 

斜率优化:

1.「火影完结纪念赛」木叶的军师

dp:

2.「cf506A」Mr. Kitayuta, the Treasure Hunter

tarjan+并查集:

3.「cf506B」Mr. Kitayuta’s Technology

虚树+树形dp:

4.「bzoj2286」[Sdoi2011]消耗战 

5.「bzoj3611」[Heoi2014]大工程

gcd+随机化:

6.「cf364D」Ghd

模拟:

7.「bzoj3856」Monster 

8.「cf508A」Pasha and Pixels

并查集:

9.「bzoj1370」[Baltic2003]Gang团伙

//P1892 [BOI2003]团伙
//在线测评地址https://www.luogu.org/problemnew/show/P1892 
//数组开到2000,用在 处理 我敌人的敌人也是我的朋友 
//处理 我敌人的敌人也是我的朋友 稍花了点功夫 
//也就是将 所有人的爸爸 局限在1--n之间 
//样例通过,提交AC。2019-4-2 
//比较期待他人如何处理 爸爸的范围是1--n,还是1--2n
//翻看了他人代码,发现处理手法与本人基本一致。  
#include
int n,m,f[2010];
int getf(int u){
    if(f[u]==u)return u;
    return f[u]=getf(f[u]);
}
void merge(int u,int v){//合并时,让爸爸出现在1--n之间 
    int f1=getf(u),f2=getf(v);
    if(f1!=f2){
        if(f1<=n)f[f2]=f1;
        else f[f1]=f2;//f2<=n
    } 
}
int main(){
    int i,a,b,cnt=0;
    char cmd[5];
    scanf("%d%d",&n,&m);
    for(i=1;i<=n*2;i++)f[i]=i;
    while(m--){
        scanf("%s%d%d",cmd,&a,&b);
        if(cmd[0]=='E'){
            merge(a+n,b),merge(a,b+n);
        }else if(cmd[0]=='F'){
            merge(a,b);
        }
    }
    for(i=1;i<=n;i++)
        if(f[i]==i)cnt++; 
    printf("%d\n",cnt);
    return 0;
}

状压dp:

10.「bzoj2073」[POI2004]PRZ

线段树+筛法+逆元+欧拉函数:

11.「bzoj3813」奇数国

dfs:

12.「poj2362」Square

图论+tarjan:

13.「cf403C」Strictly Positive Matrix

graham+旋转卡壳:

14.「poj2187」Beauty Contest

上下界费用流:

15.「bzoj3876」[Ahoi2014]支线剧情

treap+中位数:

16.「vijos1459」车展

dfs序+主席树:

17.「bzoj3772」精神污染

构造:

18.「cf508E」Arthur and Brackets

贪心:

19.「cf508B」Anton and currency you all know 

20.「cf508C」Anya and Ghosts

21.「cf509B」Painting Pebbles 

22.「cf509C」Sums of Digits

hash+树同构+树形dp:

23.「bzoj3162」独钓寒江雪

最小割:

24.「bzoj2229」[Zjoi2011]最小割

treap+dp:

25.「bzoj3173」[Tjoi2013]最长上升子序列

平面图+2-sat:

26.「bzoj1997」[Hnoi2010]Planar

状压dp:

27.「bzoj2004」[Hnoi2010]Bus 公交线路

并查集+置换:

28.「bzoj1998」[Hnoi2010]Fsk物品调度

模拟:

29.「cf509A」Maximum in Table

数学:

30.「cf509E」Pretty Song

你可能感兴趣的:(跟着大佬学算法)