hdu 3269 P2P File Sharing System(大模拟)
来源:互联网 发布:剑三正太捏脸数据 南风 编辑:程序博客网 时间:2024/05/21 17:13
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3269
思路:
读题型题目,今天模拟比赛时候我不想读这么长的题目,队友又不想写模拟,最后只能我硬着头皮上,不过当时实在是有点累了在结束前没敲出来,休息了一会上去一调就过了。
做的时候就是注意时间的片段是左闭右开的,然后一秒一秒模拟的好。
代码可能写得有点乱了~
code:
#include <cstdio>#include <cstdlib>#include <iostream>#include <cstring>using namespace std;const int maxn=100;const int maxe=10000;struct node1{int time,num;} down[maxe];struct node2{int ss,tt;}P[maxn][maxe];int cap[maxn];//记录每个电脑的容量int ser[maxn]; //记录服务器的编号int duan[maxn]; //表示每个电脑的开始时间段的个数int vv[maxn][maxn];int T,n,k,S,ff;//ff表示服务器的个数bool mark[maxn]; //表示那个服务器可以用bool kno[maxn]; //表示每个电脑是不是服务器void jud(int time){ memset(mark,0,sizeof(mark));for(int i=0;i<ff;i++){int v=ser[i];for(int j=0;j<duan[v];j++){if(P[v][j].ss<=time&&P[v][j].tt>time){mark[v]=1;break;}}}}void debug(){ for(int i=0;i<n;i++) printf("cap[i]=%d\n",cap[i]);}int main(){int kk,nn,v;bool flag;scanf("%d",&kk);while(kk--){scanf("%d%d",&n,&T);scanf("%d%d",&ff,&S);memset(cap,0,sizeof(cap));memset(kno,0,sizeof(kno));for(int i=0;i<ff;i++){scanf("%d",&ser[i]);ser[i]--;cap[ser[i]]=S;kno[ser[i]]=1;}for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&vv[i][j]);for(int i=0;i<n;i++){scanf("%d",&duan[i]);for(int j=0;j<duan[i];j++) scanf("%d%d",&P[i][j].ss,&P[i][j].tt);}scanf("%d",&nn);for(int i=0;i<nn;i++){scanf("%d%d",&down[i].time,&down[i].num);down[i].num--;}for(int i=0;i<=T;i++){jud(i);for(int j=0;j<nn;j++){if(down[j].time<=i){v=down[j].num;if(kno[v]) continue;flag=0;for(int k=0;k<duan[v];k++){if(P[v][k].ss<=i&&P[v][k].tt>i){flag=1;break;}}if(flag){for(int i=0;i<ff;i++){if(!mark[ser[i]]) continue;cap[v]+=vv[v][ser[i]];}}}}for(int j=0;j<n;j++){if(cap[j]>=S&&!kno[j]){ ser[ff++]=j; kno[j]=1;}}}//debug();for(int i=0;i<n;i++) if(cap[i]>=S) cap[i]=S;for(int i=0;i<n;i++){ printf("%d%%\n",(int)(((double)cap[i]/S)*100));}}return 0;}
0 0
- hdu 3269 P2P File Sharing System(大模拟)
- HDU 3269 P2P File Sharing System 模拟
- HDU3269 P2P File Sharing System
- POJ 3836 P2P File Sharing System 模拟客户机和服务器P2P传输过程
- poj 3836 P2P File Sharing System
- Implement p2p file sharing system with RMI
- ZOJ3277 POJ3836 HDU3269 P2P File Sharing System,二分图匹配
- 文献笔记3-large scale analysis of the edonkey p2p file sharing system
- Create a P2P file-sharing application
- HDU 1034 Candy Sharing Game 模拟题
- hdu 1034 Candy Sharing Game(暴力模拟)
- hdu 1034 Candy Sharing Game【水题 模拟】
- HDU 1034 Candy Sharing Game 模拟
- HDU 1034:Candy Sharing Game【模拟】
- [Codeforces 66C] Petya and File System (模拟)
- Top 10 Most Popular P2P File Sharing Clients of 2010/2011
- poj 1666 : Candy Sharing Game (模拟)
- J - Candy Sharing Game(模拟题)
- 多态
- 程序猿之---C语言细节18(一些奇怪表达式)
- python自学笔记 4
- Foundation框架下的常用类--NSDate、NSDateFormatter 、NSTimeZone
- 蛇形填数
- hdu 3269 P2P File Sharing System(大模拟)
- 【mysql】Windows下强制修改root密码
- 为什么OC中Foundation下特殊的类不能被继承
- 第11周项目3 最值 多个文件夹
- mod_rewrite,rewrite_module两种方式均不成功
- 1005. 继续(3n+1)猜想 (25)
- cpc,a wonderful concert
- 网络基础:OSI、TCP/IP、HTTP、HTTPS
- VC++的Unicode编程