博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces B. Shower Line 解题报告
阅读量:4468 次
发布时间:2019-06-08

本文共 3016 字,大约阅读时间需要 10 分钟。

题目链接:http://codeforces.com/contest/431/problem/B

题目意思:给出5 * 5 的矩阵。从这个矩阵中选出合理的安排次序,使得happiness之和最大。当第i个人和第j个人talk 的时候,第i个人获得的happiness是g[i][j],第j 个人获得的happiness是g[j][i]。

    好简单的一道题目,不知道昨晚徘徊好久都不敢打,五个for循环即可!数据量这么小......今天一次就过了...

    谨以此来纪念自己的怯懦....

    方法一:直接暴力枚举

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 #define LL long long 8 int g[10][10]; 9 LL ans;10 11 int main()12 {13 for (int i = 1; i <= 5; i++)14 {15 for (int j = 1; j <= 5; j++)16 scanf("%d", &g[i][j]);17 }18 ans = 0;19 for (int i = 1; i <= 5; i++)20 {21 for (int j = 1; j <= 5; j++)22 {23 if (i != j)24 {25 for (int k = 1; k <= 5; k++)26 {27 if (k != j && k != i)28 {29 for (int l = 1; l <= 5; l++)30 {31 if (l != k && l != i && l != j)32 {33 for (int p = 1; p <= 5; p++)34 {35 if (p != l && p != i && p != j && p != k)36 {37 // printf("i = %d, j = %d, k = %d, l = %d, p = %d\n", i, j, k, l, p);38 LL sum = g[i][j] + g[j][i] + g[j][k] + g[k][j] + 2 * (g[l][p] + g[p][l] + g[k][l] + g[l][k]);39 ans = max(ans, sum);40 }41 }42 }43 }44 }45 }46 }47 }48 }49 printf("%lld\n", ans);50 return 0;51 }

 

     方法二:利用next_permutation (学人家代码写的)

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 #define LL long long 8 const int maxn = 5; 9 int grid[maxn+1][maxn+1];10 int t[maxn];11 LL ans, tmp;12 13 int main()14 {15 for (int i = 0; i < maxn; i++)16 {17 for (int j = 0; j < maxn; j++)18 scanf("%d", &grid[i][j]);19 }20 for (int i = 0; i < maxn; i++)21 t[i] = i;22 ans = 0;23 do24 {25 //0123: 01 talk 23 talk26 tmp = grid[t[0]][t[1]] + grid[t[1]][t[0]];27 tmp += grid[t[2]][t[3]] + grid[t[3]][t[2]];28 //1234: 12 talk 34 talk29 tmp += grid[t[1]][t[2]] + grid[t[2]][t[1]];30 tmp += grid[t[3]][t[4]] + grid[t[4]][t[3]];31 //23: 23 talk32 tmp += grid[t[2]][t[3]] + grid[t[3]][t[2]];33 //34: 34 talk34 tmp += grid[t[3]][t[4]] + grid[t[4]][t[3]];35 36 ans = max(ans, tmp);37 }while (next_permutation(t, t+maxn));38 printf("%lld\n", ans);39 return 0;40 }

 

转载于:https://www.cnblogs.com/windysai/p/3745409.html

你可能感兴趣的文章
TCP
查看>>
Excel常用函数大全
查看>>
团队-团队编程项目中国象棋-模块测试过程
查看>>
10个经典的C语言面试基础算法及代码
查看>>
普通的java Ftp客户端的文件上传
查看>>
视图系统
查看>>
Palindromes _easy version
查看>>
vue 小记
查看>>
CURRICULUM VITAE
查看>>
Groovy 程序结构
查看>>
使用 WordPress 的导航菜单
查看>>
input只能输入数字和小数点,并且只能保留小数点后两位 - CSDN博客
查看>>
js 不固定传参
查看>>
远程调试UWP遇到新错误Could not generate the root folder for app package ......
查看>>
[倍增][最短路-Floyd][dp]
查看>>
SpringAOP用到了什么代理,以及动态代理与静态代理的区别
查看>>
利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(1)
查看>>
【leetcode】Populating Next Right Pointers in Each Node
查看>>
获取请求参数乱码的问题
查看>>
代码实现:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称...
查看>>