摘要:
https://vijos.org/p/1057【题意】在一个 n*m 的土地中 中有瑕疵的为0 完好的为1 其中最大的正方形无瑕疵土地 输出其边长。【思路】d[i][j]为 以点 i j 为左上角的正方形最大的边长 显然要是a[i][j]=0 则d[i][j]=0 要是a[i][j]=1 则d[i][j]=min(d[i+1][j],d[i+1][j+1],d[i][j+1])+1 ( 画一下图就知道了 )【注意】for(j=m;j>=1;j--) for(i=n;i>=1;i--) 这样才能保证在算d[i][j]时已经算出 d[i+1][j],d[i+1][... 阅读全文
摘要:
题意:sqybi现在有m块大洋,r的人品。请i号MM吃饭要花rmb[i]块大洋.要耗费rp[i]的人品,time[i]的时间 求他泡到最多的MM花费的最少时间是多少【思路】 扩展的01背包了。。 再多加一维 和一个记录时间的数组就可以了d[j][k]:将前i个mm中 用j块大洋 k单位人品 最多可以泡到几个 d[j][k]=max(d[j-rmb[i]][k-rp[i]]+1)ac 代码#include#include //using namespace std;int d[102][102],r[102],rmb[102],rp[102],time[102],cost[102]... 阅读全文
摘要:
http://www.rqnoj.cn/problem/302题意:给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1#include#includeusing namespace std;char ss[1002],s[10][202],sum[1002][1002],opt[1002][1002];int main(){ int i,j,n,m,t,k,q; while(~scanf("%d%d",&n,&t)) { getchar(); for(i... 阅读全文