当前位置: 首页 > news >正文

cms网站后台模版东莞网页开发

cms网站后台模版,东莞网页开发,名站在线,深圳定制网站制作Description 在一些一对一游戏的比赛#xff08;如下棋、乒乓球和羽毛球的单打#xff09;中#xff0c;我们经常会遇到A胜过B#xff0c;B胜过C而C又胜过A的有趣情况#xff0c;不妨形象的称之为剪刀石头布情况。有的时候#xff0c;无聊的人们会津津乐道于统计有多少这… Description 在一些一对一游戏的比赛如下棋、乒乓球和羽毛球的单打中我们经常会遇到A胜过BB胜过C而C又胜过A的有趣情况不妨形象的称之为剪刀石头布情况。有的时候无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生即有多少对无序三元组(A, B, C)满足其中的一个人在比赛中赢了另一个人另一个人赢了第三个人而第三个人又胜过了第一个人。注意这里无序的意思是说三元组中元素的顺序并不重要将(A, B, C)、(A, C, B)、(B, A, C)、(B, C, A)、(C, A, B)和(C, B, A)视为相同的情况。 有N个人参加一场这样的游戏的比赛赛程规定任意两个人之间都要进行一场比赛这样总共有场比赛。比赛已经进行了一部分我们想知道在极端情况下比赛结束后最多会发生多少剪刀石头布情况。即给出已经发生的比赛结果而你可以任意安排剩下的比赛的结果以得到尽量多的剪刀石头布情况。 Input 输入文件的第1行是一个整数N表示参加比赛的人数。 之后是一个N行N列的数字矩阵一共N行每行N列数字间用空格隔开。 在第(i1)行的第j列的数字如果是1则表示i在已经发生的比赛中赢了j该数字若是0则表示在已经发生的比赛中i败于j该数字是2表示i和j之间的比赛尚未发生。数字矩阵对角线上的数字即第(i1)行第i列的数字都是0它们仅仅是占位符号没有任何意义。 输入文件保证合法不会发生矛盾当i≠j时第(i1)行第j列和第(j1)行第i列的两个数字要么都是2要么一个是0一个是1。 Output 输出文件的第1行是一个整数表示在你安排的比赛结果中出现了多少剪刀石头布情况。 输出文件的第2行开始有一个和输入文件中格式相同的N行N列的数字矩阵。第(i1)行第j个数字描述了i和j之间的比赛结果1表示i赢了j0表示i负于j与输入矩阵不同的是在这个矩阵中没有表示比赛尚未进行的数字2对角线上的数字都是0。输出矩阵要保证合法不能发生矛盾。 题解http://blog.csdn.net/pouy94/article/details/5972444 PS这题太牛叉了值得一做…… 代码896MS 1 #include cstdio2 #include cstring3 #include iostream4 #include algorithm5 #include queue6 using namespace std;7 8 const int MAXN 110;9 const int MAXV MAXN * MAXN;10 const int MAXE MAXN * MAXV;11 const int INF 0x7f7f7f7f;12 13 struct ZWK_FLOW {14 int head[MAXV], dis[MAXV];15 int to[MAXE], next[MAXE], flow[MAXE], cost[MAXE];16 int n, ecnt, st, ed;17 18 void init() {19 memset(head, 0, sizeof(head));20 ecnt 2;21 }22 23 void add_edge(int u, int v, int c, int w) {24 to[ecnt] v; flow[ecnt] c; cost[ecnt] w; next[ecnt] head[u]; head[u] ecnt;25 to[ecnt] u; flow[ecnt] 0; cost[ecnt] -w; next[ecnt] head[v]; head[v] ecnt;26 //printf(%d %d %d %d\n, u, v, c, w);27 }28 29 void spfa() {30 for(int i 1; i n; i) dis[i] INF;31 priority_queuepairint, int que;32 dis[st] 0; que.push(make_pair(0, st));33 while(!que.empty()) {34 int u que.top().second, d -que.top().first; que.pop();35 if(d ! dis[u]) continue;36 for(int p head[u]; p; p next[p]) {37 int v to[p];38 if(flow[p] dis[v] d cost[p]) {39 dis[v] d cost[p];40 que.push(make_pair(-dis[v], v));41 }42 }43 }44 int t dis[ed];45 for(int i 1; i n; i) dis[i] t - dis[i];46 }47 48 int minCost, maxFlow;49 bool vis[MAXV];50 51 int add_flow(int u, int aug) {52 if(u ed) {53 maxFlow aug;54 minCost dis[st] * aug;55 return aug;56 }57 vis[u] true;58 int now aug;59 for(int p head[u]; p; p next[p]) {60 int v to[p];61 if(flow[p] !vis[v] dis[u] dis[v] cost[p]) {62 int t add_flow(v, min(now, flow[p]));63 flow[p] - t;64 flow[p ^ 1] t;65 now - t;66 if(!now) break;67 }68 }69 return aug - now;70 }71 72 bool modify_label() {73 int d INF;74 for(int u 1; u n; u) if(vis[u]) {75 for(int p head[u]; p; p next[p]) {76 int v to[p];77 if(flow[p] !vis[v]) d min(d, dis[v] cost[p] - dis[u]);78 }79 }80 if(d INF) return false;81 for(int i 1; i n; i) if(vis[i]) dis[i] d;82 return true;83 }84 85 int min_cost_flow(int ss, int tt, int nn) {86 st ss, ed tt, n nn;87 minCost maxFlow 0;88 spfa();89 while(true) {90 while(true) {91 for(int i 1; i n; i) vis[i] false;92 if(!add_flow(st, INF)) break;93 }94 if(!modify_label()) break;95 }96 return minCost;97 }98 } G;99 100 int n, m; 101 int mat[MAXN][MAXN], ans[MAXN][MAXN]; 102 103 inline int encode(int i, int j) { 104 if(i j) swap(i, j); 105 return i * n j; 106 } 107 108 int main() { 109 scanf(%d, n); 110 for(int i 1; i n; i) for(int j 1; j n; j) scanf(%d, mat[i][j]); 111 m n * n; 112 int ss n m 1, tt ss 1; 113 G.init(); 114 int sum n * (n - 1) * (n - 2) / 6; 115 for(int i 1; i n; i) { 116 for(int j 1, tmp 1; j n; j, tmp 2) G.add_edge(ss, i, 1, tmp); 117 for(int j 1; j n; j) if(mat[i][j] ! 0) 118 ans[i][j] G.ecnt, G.add_edge(i, encode(i, j), 1, 0); 119 } 120 for(int i 1; i m; i) G.add_edge(i n, tt, 1, 0); 121 int x G.min_cost_flow(ss, tt, tt); 122 printf(%d\n, sum - (x - n * (n - 1) / 2) / 2); 123 for(int i 1; i n; i) { 124 for(int j 1; j n; j) { 125 if(j ! 1) printf( ); 126 if(mat[i][j] ! 2) printf(%d, mat[i][j]); 127 else { 128 if(G.flow[ans[i][j]] 0) printf(1); 129 else printf(0); 130 } 131 } 132 puts(); 133 } 134 } View Code      转载于:https://www.cnblogs.com/oyking/p/3330462.html
http://www.zqtcl.cn/news/930335/

相关文章:

  • 怎么提交网站关键词包头人脸检测系统
  • 哪个网站开发是按月付费的婚纱摄影建设网站的目的
  • 站长之家app简单网站制作步骤
  • 网站开发与桌面应用开发wordpress if include
  • 网站怎么做预约小程序江苏省工程建设招标网站
  • python做网站有什么弊端专业做网带
  • 浙江建设工程考试网站wordpress等模版比较
  • seo网站论文高端疫苗
  • 山东省城乡住房和建设厅网站首页贵阳网站建设技术托管
  • 免费的网站申请做电影网站被告版权
  • 网站后台显示不全百姓网招聘信息最新招聘
  • 前端手机网站同企网站建设做网站
  • 重庆专业网站公司查看网站是否收录
  • 网站怎么做网上报名学多久可以做网站 知乎
  • 网站建设项目总结报告织梦模板建站
  • 关于网站建设的基础知识中石化十建公司官网
  • 江苏做网站怎么收费wordpress的wap插件
  • 企业营销网站建设公司哪家好网站建设团队名称
  • 法制网站建设问卷调查手机网站打开自动wap
  • 建设网站 如何给文件命名佛山网站推广市场
  • 网站客户问题解答网站建设网站规划书
  • 罗湖网站公司网络营销的种类有哪些
  • 怎么做微网站推广做一个自己的网站需要什么
  • 一个静态网站开发考虑什么最近一周新闻热点回顾
  • 北京网站设计知名乐云seo汝州建设局网站
  • 珠海左右创意园网站开发注册安全工程师报名条件和要求
  • 建设文明网站包括怎么用手机建设网站
  • 网站建设商城宁波seo深度优化平台有哪些
  • 免费企业查询网站网站建设有关的职位
  • 有哪些网站是可以做会计题目的广告网站建设设计