1. 程式人生 > >洛谷題目按難度點評---普及

洛谷題目按難度點評---普及

1.//P2347 砝碼稱重
//採用列舉的方式,對每組重量設定一個訪問標識,防止重複計算。
#include <stdio.h>
#include <string.h>
int vis[1010],a[10];
int main(){
    int i,i1,i2,i3,i4,i5,i6,w,ans=0;
    memset(vis,0,sizeof(vis));
    for(i=1;i<=6;i++)
        scanf("%d",&a[i]);
    for(i1=0;i1<=a[1];i1++)
        for(i2=0;i2<=a[2];i2++)
            for(i3=0;i3<=a[3];i3++)
                for(i4=0;i4<=a[4];i4++)
                    for(i5=0;i5<=a[5];i5++)
                        for(i6=0;i6<=a[6];i6++){
                            w=i1*1+i2*2+i3*3+i4*5+i5*10+i6*20;
                            if(w>0&&vis[w]==0){
                                vis[w]=1;
                            }
                        }
    for(i=1;i<=1000;i++)
        if(vis[i])
            ans++;
    printf("Total=%d\n",ans);
    return 0;
}

2.//1360 奇怪的電梯(lift)
//http://ybt.ssoier.cn:8088
//洛谷 P1135 奇怪的電梯
//https://www.luogu.org/problemnew/show/1135
//該題題目讀起來,比較累
//要是能將樣例的實現有一個詳細說明該有多好啊。
//對 如果不能滿足要求,相應的按鈕就會失靈。 產生誤解,到了相應樓層可以不按鍵,電梯會自行前往可行的樓層,在這個想法裡僵持了很久
//看了他人程式碼,才明白,到了樓層以後,必按按鈕,只是能去的樓層,按按鈕有效,不能去的樓層,按按鈕無效
//樣例分析如下:
//1樓 按上 到 1+3=4樓
//4樓 按下 到 4-2=2樓
//2樓 按上 到 2+3=5樓
//插一句,題目中給的按鈕,開,關是多餘的,在解題中沒有用到,這句也困擾了很久,一直在想,按開算一次,按關算一次。
//源自老外的題,翻譯確實很差勁。
//該題,難在破題,編碼挺簡單的
//樣例通過,提交AC 2017-11-10 22:37
#include <stdio.h>
#include <string.h>
int a[300],vis[300];
struct node{
    int x,s;//s按鍵次數
}q[300];
int main(){
    int n,start,end,i,cnt=0,h,t,x,nx,s;
    memset(vis,0,sizeof(vis));
    scanf("%d%d%d",&n,&start,&end);
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    h=t=1;
    q[t].x=start,q[t].s=0,t++,vis[start]=1;//請注意q[t].s=0而不是1
    while(h<t){
        x=q[h].x,s=q[h].s;
        if(x==end){
            printf("%d",s);
            return 0;
        }
        nx=x+a[x];
        if(1<=nx&&nx<=n&&vis[nx]==0){
            q[t].x=nx,q[t].s=s+1,vis[nx]=1,t++;
        }
        nx=x-a[x];
        if(1<=nx&&nx<=n&&vis[nx]==0){
            q[t].x=nx,q[t].s=s+1,vis[nx]=1,t++;
        }
        h++;
    }
    printf("-1");
    return 0;
}

3.//洛谷 P2731 騎馬修柵欄 Riding the Fences
//1375 騎馬修柵欄(fence)
//開始以為柵欄對應點,以為該題是哈密爾頓迴路,整道題讀完,發現柵欄對應邊,該題是尤拉路徑
//該題難點,總的點的個數沒有說明,看了一眼https://www.cnblogs.com/gzhonghui/p/5707943.html程式碼
//需區分尤拉路徑,歐拉回路
//樣例通過,提交,測試點6,7,8答案錯誤
//重新看了一遍https://www.cnblogs.com/gzhonghui/p/5707943.html程式碼,發現最小的點竟然可能不是1,也得自個求
//修改,提交,測試點6,7,8答案錯誤
//搜尋網路,https://www.luogu.org/wiki/show?name=%E9%A2%98%E8%A7%A3+P2731
//提到,兩頂點間可能有多個柵欄,於是我們就要統計2個點之間的柵欄條數(好坑啊)
//馬上修改,提交,還是錯了測試點6,7,8
//下載測試點6的資料,才發現,問題是意識到了,但讀取資料的時候沒有做邊的自增修改,
//修改,提交,發現錯了測試點7,8
//繼續下載測試點7的資料,
//仿照他人程式碼就行修改,提交AC 2017-11-12 19:14
//一個疑問,記錄路徑時,放在dfs()之前,與放在迴圈結束之後,為什麼會有偏差,函待解決。
#include <stdio.h>
#include <string.h>
int a[510][510],b[2000],begin=999999,n=0,du[510],cnt_b=0;//b[]記錄走過的點,注意點可以重複,注意b要開得大些 n點的數目
int max(int a,int b){
    return a>b?a:b;
}
int min(int a,int b){
    return a<b?a:b;
}
void dfs(int i){
    int j;
    for(j=begin;j<=n;j++)//此處寫成 for(j=1;j<=n;j++)
        if(a[i][j]){
            a[i][j]--,a[j][i]--;//此處寫成 a[i][j]=0,a[j][i]=0;
            //b[cnt_b++]=j;//為了解決測試點7,8
            dfs(j);
        }
    b[cnt_b++]=i;//為了解決測試點7,8
}
int main(){
    int m,i,j,u,v,cnt_du=0,start;
    memset(a,0,sizeof(a)),memset(du,0,sizeof(du));
    scanf("%d",&m);
    for(i=1;i<=m;i++){
        scanf("%d%d",&u,&v);//無向圖
        a[u][v]++,a[v][u]++,du[u]++,du[v]++;//此處寫成 a[u][v]=1,a[v][u]=1,du[u]++,du[v]++;
        n=max(n,max(u,v)); //參考他人程式碼,才想到的
        begin=min(begin,min(u,v));
    }
    start=begin;//此處寫成start=1;//歐拉回路,從第1個點開始
    for(i=begin;i<=n;i++)//此處寫成 for(i=1;i<=n;i++)
        if(du[i]%2==1){
            cnt_du++;
            if(cnt_du==1)start=i;//尤拉路徑,從第i個點開始
        }
    dfs(start);
    //printf("%d\n",start);//為了解決測試點7,8
    //for(i=0;i<cnt_b;i++)printf("%d\n",b[i]);//為了解決測試點7,8
    for(i=cnt_b-1;i>=0;i--)printf("%d\n",b[i]);//為了解決測試點7,8
    return 0;
}
 
4.//1249 Lake Counting
//POJ 2386 Lake Counting
//P1596 [USACO10OCT]湖計數Lake Counting
//雖然很不願意陣列從0元素開始,但是面對字串也只好這樣。
//提交,測試點6,執行錯誤,
//提供一組測試資料
//輸入:
100 100
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
//輸出:
1
//在新增進佇列時,馬上將'W'改成'.',會比較省空間。
//若將資料從隊首取出時,再將'W'改成'.',會反覆將'W'加入佇列,十分浪費空間。
//本題又學會一招。
//洛谷,POJ,ybt提交,AC 2017-11-14 20:13
#include <stdio.h>
int n,m,next[][2]={{-1,0},{1,0},{0,-1},{0,1},{-1,1},{1,1},{1,-1},{-1,-1}};
char a[120][120];
struct node{
    int r,c;
}q[13000];
void bfs(int x,int y){
    int r,c,nr,nc,k,h,t;
    h=t=1;
    q[t].r=x,q[t].c=y,t++,a[x][y]='.';//此處又寫成a[r][c]='.'//此處新增a[r][c]='.';
    while(h<t){
        r=q[h].r,c=q[h].c;
        for(k=0;k<8;k++){
            nr=r+next[k][0],nc=c+next[k][1];
            if(0<=nr&&nr<n&&0<=nc&&nc<m&&a[nr][nc]=='W')//此處次寫成if(0<=nr&&nr<n&&0<=nc&&nc<m),缺斤短兩
                q[t].r=nr,q[t].c=nc,t++,a[nr][nc]='.';//此處再次寫成a[r][c]='.'//此處新增a[r][c]='.'//此處再次寫成,q[t].r=nr,q[t],c=nc,t++;筆誤難免
        }
        h++;
    }
}
int main(){
    int i,j,cnt=0;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%s",a[i]);//此處寫成scanf("%d",a[i]);,低階中的低階
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            if(a[i][j]=='W'){//此處寫成 if(a[i][j]=='w')
                cnt++;
                bfs(i,j);
            }
    printf("%d",cnt);
    return 0;
}
5.
//1321 【例6.3】刪數問題(Noip1994)
//洛谷 P1106 刪數問題
//此題與 1231 最小新整數 基本雷同
//1231 最小新整數
//感覺題目比較簡單,將最大的數由大到小刪除
//樣例通過,但提交,未通過
//總覺得演算法不對,因為刪的是最大的數,但又舉不出反例
//http://blog.csdn.net/c20190102/article/details/52350828此文介紹得真不賴,摘抄如下:
//此題先看看思路:
//如果是直接刪掉最大的數字,很容易便可舉出反例:
//1529 1
//如果直接刪最大的9,結果為152,如果刪掉5,結果為129,顯然刪掉5才是最佳答案。
//再看一組資料:
//141519 2
//如果刪最大的9,5,結果為1411,如果刪掉4,5,結果為1119,顯然刪掉4,5才是最佳答案。
//發現什麼了嗎?
//先看第一組:
//1  5  1  9
//小大 小 大
//留刪 留 留
//第二組:
//1   4  1  5  1   9
//小 大 小 大 小 大
//留 刪 留刪 留 留
//刪掉的是“山峰”,也就是比後一個數大的數,且越靠前“山
//峰”越早刪。
//大體思路也就一句話:刪除靠前的“山峰”。
//另外,有幾個坑不得不提:
//1.注意刪除前導0(雖然它說每個數位都不為0,但是測試資料裡面好像有這樣的資料)。
//2.刪過一個數記得長度len--。
//3.有多組資料(其實陣列可以不清零,因為有len控制查詢範圍)。
//4.當把數刪為0(見資料4)時,要輸出0。
//另外送大家幾組資料(我就在此栽過跟頭):
//   輸入                       輸出
//133420 2                   120
//1444 3                        1
//20018 2                      1
//10000 1                      0
//http://blog.csdn.net/qq_25734657/article/details/52329863程式碼簡練,此文也寫得不錯,摘抄如下:
//1243865 1怎麼刪呢?如果你認為是刪8,那就錯了。如果刪8,得124365,但如果刪4,得123865,哪個更小呢?毫無疑問是後者吧。那如果是1244444 5呢?最後刪到124就刪不掉了,所以還有一個條件,如果刪了一遍,刪不掉,就刪去最後一個。大概意思就是這樣,由於這道題沒有出現有0的情況,所以我在這裡暫時不討論,可以自己想想。
//程式碼徹底推翻重來,樣例通過,提交,未通過,
//少了break,修改,提交AC 2017-11-2 22:26
//提交,測試點2,6答案錯誤
//提供兩組測試資料
//輸入:
//20018 2
//輸出:
//1
//輸入:
//10000 1
//輸出:
//0
//針對上述兩組輸入輸出資料進行修改,提交AC 2017-11-26 17:13
#include <stdio.h>
#include <string.h>
char c[260];
int main(){
    int len,i,j,s;
    scanf("%s%d",c,&s);
    len=strlen(c);
    while(s--){
        for(i=0;i<=len-2;i++)
            if(c[i]>c[i+1]){
                for(j=i;j<=len-2;j++)
                    c[j]=c[j+1];
                break;
            }
        len--;//此處位置寫錯,之前寫在if內部
    }
    i=0;
    while(i<=len-1&&c[i]=='0')i++;//處理前導0
    if(i==len)printf("0");
    else
        for(j=i;j<=len-1;j++)
            printf("%c",c[j]);
    return 0;
}