重走长征路---OI每周刷题记录---5月24日 2014

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

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

重走长征路---OI每周刷题记录---5月24日  2014

本周共计39题+题

测评地址:

斜率优化:

1.[Usaco2008 Mar]土地购买 

2.「bzoj1911」[Apio2010]特别行动队

3.「bzoj1096」[ZJOI2007]仓库建设

kruskal:

4.「bzoj2429」[HAOI2006]聪明的猴子

5.「bzoj1626」[Usaco2007 Dec]Building Roads 修建道路

离线+线段树:

6.「bzoj3585」mex

树状数组:

7.「bzoj1782」[Usaco2010 Feb]slowdown慢慢游

状压dp:

8.「bzoj1231」[Usaco2008 Nov]mixup2 混乱的奶牛

树形dp+贪心:

9.「bzoj1827」[Usaco2010 Mar]gather 奶牛大集会

分数规划:

10.「bzoj1690」[Usaco2007 Dec]奶牛的旅行

二分+后缀数组:

11.「bzoj1717」[Usaco2006 Dec]Milk Patterns 产奶的模式

dp:

12.「bzoj1668」[Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富 

13.「cf431C」k-Tree

14.「bzoj1600」[Usaco2008 Oct]建造栅栏 

15.「bzoj1617」River Crossing渡河问题

16.「bzoj1260」[CQOI2007]涂色paint 

17.「bzoj1679」[Usaco2005 Jan]Moo Volume 牛的呼声

18.「bzoj1642」[Usaco2007 Nov]Milking Time 挤奶时间

最大流:

19.「bzoj1711」[Usaco2007 Open]Dingin吃饭

高精度:

20.「JoyOI1040」表达式计算

dp+单调队列:

21.「bzoj1233」[Usaco2009Open]干草堆tower

dp+背包dp:

22.「bzoj1296」[SCOI2009]粉刷匠

爬山算法:

23.「poj2420」A Star not a Tree? 

24.「JoyOI1551」平衡的爱 

25.「poj2069」Super Star

模拟退火:

26.「poj2420」A Star not a Tree?

贪心+筛法:

27.「432C」Prime Swaps

模拟:

28.「cf431A」Black Square

暴力+dfs:

29.「cf431B」Shower Line

随机增量法:

30.「bzoj1336」[Balkan2002]Alien最小圆覆盖 

31.「bzoj1337」最小圆覆盖

反素数+dfs:

32.「bzoj1053」[HAOI2007]反素数ant

floyd:

33.「1612」[Usaco2008 Jan]Cow Contest奶牛的比赛

筛法:

34.「bzoj1607」[Usaco2008 Dec]Patting Heads 轻拍牛头

并查集:

35.「JoyOI1863」 [Poetize I]黑魔法师之门

spfa:

36.「bzoj1631」[Usaco2007 Feb]Cow Party

rmq:

37.「bzoj1636」[Usaco2007 Jan]Balanced Lineup

bfs:

38.「bzoj1627」[Usaco2007 Dec]穿越泥地

贪心:

39.「bzoj1629」[Usaco2007 Demo]Cow Acrobats
 

题解:

斜率优化:

1.[Usaco2008 Mar]土地购买 

2.「bzoj1911」[Apio2010]特别行动队

3.「bzoj1096」[ZJOI2007]仓库建设

kruskal:

4.「bzoj2429」[HAOI2006]聪明的猴子

//P2504 [HAOI2006]聪明的猴子
//在线测评地址https://www.luogu.org/problemnew/show/P2504 
//Kruskal算法 
//1000个点,边有C(1000,2)=1000*999/2=5*10^5条边 
//边自小到大排列,需采用快排,平均算法时间复杂度O(nlogn) 
//结束时,找到此时最大的边,猴子的跳跃距离与其进行比较即可 
//最大距离sqrt((1000-(-1000))^2+(1000-(-1000))^2),计算过程中,int不会溢出 
//决定计算时,不开方。
//编的过程中,小错误不断,采用跟踪的方式,一一排除。
//样例通过,提交AC。2019-4-11 
#include
#include
#define maxn 1010
using namespace std;
int h[maxn/2],m,n,cnt=0,f[maxn],c;//cnt用来统计边数 
struct Point{
    int x,y;
}p[maxn];
struct Edge{
    int a,b,d;//a节点,b节点,d边长 
}e[maxn*maxn/2];
int dis(Point a,Point b){
    return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
int cmp(Edge a,Edge b){
    return a.d }
void init(){
    int i,j;
    scanf("%d",&m);//此处写成scanf("%d%d",&m,&n);,重大失误 
    for(i=1;i<=m;i++)scanf("%d",&h[i]);
    sort(h+1,h+1+m);//自小到大排序
    scanf("%d",&n);
    for(i=1;i<=n;i++)f[i]=i;//此处一开始,写错位了 
    for(i=1;i<=n;i++)scanf("%d%d",&p[i].x,&p[i].y);
    for(i=1;i<=n;i++)
        for(j=i+1;j<=n;j++)
            cnt++,e[cnt].a=i,e[cnt].b=j,e[cnt].d=dis(p[i],p[j]);//此处写成 cnt++,e[cnt].a=i,e[cnt].b,e[cnt].d=dis(p[i],p[j]);
    sort(e+1,e+1+cnt,cmp);
}
int getf(int u){
    return f[u]==u?u:f[u]=getf(f[u]);
}
void Kruskal(){
    int i,b=0,f1,f2;//b统计边数 
    for(i=1;i<=cnt;i++){
        f1=getf(e[i].a),f2=getf(e[i].b);
        if(f1!=f2){
            f[f2]=f1;
            b++;
            if(b==n-1){
                c=e[i].d;
                break;
            }
        }
    }   
}
int main(){
    int i;
    init();
    Kruskal();
    
    for(i=1;i<=m;i++)
        if(h[i]*h[i]>=c)break;//此处写成 if(h[i]>=c)break;
    printf("%d\n",m-i+1);
    return 0;
}

5.「bzoj1626」[Usaco2007 Dec]Building Roads 修建道路

离线+线段树:

6.「bzoj3585」mex

树状数组:

7.「bzoj1782」[Usaco2010 Feb]slowdown慢慢游

状压dp:

8.「bzoj1231」[Usaco2008 Nov]mixup2 混乱的奶牛

树形dp+贪心:

9.「bzoj1827」[Usaco2010 Mar]gather 奶牛大集会

分数规划:

10.「bzoj1690」[Usaco2007 Dec]奶牛的旅行

二分+后缀数组:

11.「bzoj1717」[Usaco2006 Dec]Milk Patterns 产奶的模式

dp:

12.「bzoj1668」[Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富 

13.「cf431C」k-Tree

14.「bzoj1600」[Usaco2008 Oct]建造栅栏 

15.「bzoj1617」River Crossing渡河问题

16.「bzoj1260」[CQOI2007]涂色paint 

17.「bzoj1679」[Usaco2005 Jan]Moo Volume 牛的呼声

18.「bzoj1642」[Usaco2007 Nov]Milking Time 挤奶时间

最大流:

19.「bzoj1711」[Usaco2007 Open]Dingin吃饭

高精度:

20.「JoyOI1040」表达式计算

dp+单调队列:

21.「bzoj1233」[Usaco2009Open]干草堆tower

dp+背包dp:

22.「bzoj1296」[SCOI2009]粉刷匠

爬山算法:

23.「poj2420」A Star not a Tree? 

24.「JoyOI1551」平衡的爱 

25.「poj2069」Super Star

模拟退火:

26.「poj2420」A Star not a Tree?

贪心+筛法:

27.「432C」Prime Swaps

模拟:

28.「cf431A」Black Square

暴力+dfs:

29.「cf431B」Shower Line

随机增量法:

30.「bzoj1336」[Balkan2002]Alien最小圆覆盖 

31.「bzoj1337」最小圆覆盖

反素数+dfs:

32.「bzoj1053」[HAOI2007]反素数ant

floyd:

33.「1612」[Usaco2008 Jan]Cow Contest奶牛的比赛

筛法:

34.「bzoj1607」[Usaco2008 Dec]Patting Heads 轻拍牛头

并查集:

35.「JoyOI1863」 [Poetize I]黑魔法师之门

spfa:

36.「bzoj1631」[Usaco2007 Feb]Cow Party

rmq:

37.「bzoj1636」[Usaco2007 Jan]Balanced Lineup

bfs:

38.「bzoj1627」[Usaco2007 Dec]穿越泥地

贪心:

39.「bzoj1629」[Usaco2007 Demo]Cow Acroba

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