HDU3269 P2P File Sharing System

来源:互联网 发布:python web和java web 编辑:程序博客网 时间:2024/05/16 09:18

http://acm.hdu.edu.cn/showproblem.php?pid=3269


09宁波。

模拟题。


#include <cstdio>#include <cstring>#include <cmath>#include <map>#include <set>#include <vector>#include <iostream>#include <cstdlib>#include <algorithm>#include <string>#include <queue>//#include <time1.h>#include <list>#include <stack>using namespace std;#define N 25#define M 1005int n,time1,k,size,m;int a[N][N];bool ser[N];struct machine{    int begt,v;    bool work[M];}ma[N];void init(){    int i,j,m1,p,q;    scanf("%d%d",&n,&time1);    scanf("%d%d",&k,&size);    for (i=1;i<=n;i++) ma[i].v=0;    memset(ser,false,sizeof(ser));    for (i=1;i<=k;i++)    {        scanf("%d",&j);        ser[j]=true;        ma[j].v=size;    }    for (i=1;i<=n;i++)    for (j=1;j<=n;j++)    scanf("%d",&a[i][j]);    for (i=1;i<=n;i++)    {        for (j=1;j<=time1;j++) ma[i].work[j]=false;        scanf("%d",&m1);        for (j=1;j<=m1;j++)        {            scanf("%d%d",&p,&q);            p++;            for (int kk=p;kk<=q;kk++) ma[i].work[kk]=true;        }    }    scanf("%d",&m);    for (i=1;i<=m;i++)    {        scanf("%d%d",&p,&q);        ma[q].begt=p+1;    }}int main(){    //freopen("a","r",stdin);    int T,i,j,kk;    scanf("%d",&T);    while(T--)    {        init();        for (i=1;i<=time1;i++)        {            for (j=1;j<=n;j++)            if (!ser[j] && i>=ma[j].begt && ma[j].work[i])            {                for (kk=1;kk<=n;kk++)                if (kk!=j && ser[kk] && ma[kk].work[i]) ma[j].v+=a[kk][j];            }            for (j=1;j<=m;j++)            if (ma[j].v>=size)            {                ser[j]=true;                ma[j].v=size;            }        }        for (i=1;i<=n;i++) printf("%d%%\n",(ma[i].v*100)/size);    }    return 0;}


原创粉丝点击