[Usaco1.3&luogu1209] Barn Repair

来源:互联网 发布:数据库建模培训 编辑:程序博客网 时间:2024/06/08 14:10

题目链接

题解:写了个dp……其实贪心就好

#include <cstdio>#include <climits>#include <iostream>#include <algorithm>using namespace std;#define INF INT_MAX-10000//防止爆int int n,m,c;int w[205];int f[205][55];inline void init(){    cin>>m>>c>>n;    for(int i=1;i<=n;i++)    scanf("%d",&w[i]);    sort(w+1,w+1+n);//如果题目中没说输入有序的话,最好排一下序……因为这个WA了一次     w[0]=w[1]-1;//预处理处理i=w[1],j=1的情况     for(int i=1;i<=c;i++)    f[i][0]=INF;//预处理处理j=1的情况 }inline void work(){    for(int i=1;i<=n;i++)    for(int j=1;j<=m;j++)    f[w[i]][j]=min(f[w[i-1]][j]+w[i]-w[i-1],f[w[i-1]][j-1]+1);    //f[w[i-1]][j]+w[i]-w[i-1]表示跟上一个牛棚使用同一块木板,f[w[i-1]][j-1]+1表示新增一块木板     printf("%d\n",f[w[n]][m]);}int main(){    init();    work();    return 0;}
0 0
原创粉丝点击