洛谷題目按難度點評---普及
阿新 • • 發佈:2019-02-17
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;
}
//採用列舉的方式,對每組重量設定一個訪問標識,防止重複計算。
#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;
}