杭電ACM 建房子(貪心)

2021-09-12 19:00:14 字數 895 閱讀 3744

突破口:充分利用每一堵牆,有牆出現,其所在的行、列都加權1(除非遇到另一堵牆才停止),依次從權值由高到低開始建,每建一座,其所在的行、列都設定為n(no)(除非遇到牆才停止)。

**如下:

#include#include#includeusing namespace std;

char map[6][6]; //製作一張圖

struct wall //記錄牆的位置

w[17];

int main()

}} if(flag==0) printf("%d\n",n); //沒有牆的情況

else

else if(flag==3) printf("1\n");

else printf("0\n");

}else //n==3或n==4的情況就比較複雜

for(j=w[i].x+1;j<=n;j++)

for(j=w[i].x-1;j>=1;j--)

}for(num=4;num>=0;num--) //num表權值,最大為4

else if(map[i][k]=='x') break; //遇到牆一定要停,下同

}for(k=j-1;k>=1;k--)

else if(map[i][k]=='x') break;

}for(k=i+1;k<=n;k++)

else if(map[k][j]=='x') break;

}for(k=i-1;k>=1;k--)

else if(map[k][j]=='x') break;}}

}}

}printf("%d\n",yes);

}} }

return 0;

}

杭電ACM 4864,Task(貪心)

題意 有n個機器和m個任務,每個機器每天都有乙個最大工作時長x1,以及最大工作難度y1,每個任務都有乙個工作時間x2,工作難度y2。每完成乙個任務多有乙個收益500 x2 2 y2。假設每個機器一天只能完成乙個任務,乙個任務只能又乙個機器完成,不可由多個一起完成。求一天當中能完成的最多工,並輸出收益...

杭電1789 貪心

題目大意 有 t 組資料,每組資料報含乙個n,n個作業的截止日期 和 遲交要扣的分數,問做完這些作業扣的最少分數是多少?1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include ...

杭電ACM題目分類

基礎題 1000 1001 1004 1005 1008 1012 1013 1014 1017 1019 1021 1028 1029 1032 1037 1040 1048 1056 1058 1061 1070 1076 1089 1090 1091 1092 1093 1094 1095 1...