[CodeForces500B]New Year Permutation[floyd]
来源:互联网 发布:淘宝活动工具 编辑:程序博客网 时间:2024/05/10 17:33
题目链接:[CodeForces500B]New Year Permutation[floyd]
题意分析:矩阵中s[i][j] == '1' 时,对应的a[i], a[j]可进行互换,问:根据矩阵,多次互换后最终可以得到字典序最小的序列是什么?
解题思路:既然要求字典序最小,那就尽量把小的往前排。那么怎么样尽量往前排呢?就是遍历所以该点能到达的点,让最小的,并且排在这个点后面的点与它交换即可。怎样遍历到所有能到达的点呢?这个时候就要用到floyd了。
个人感受:表示题意好难懂TAT。然后遍历所有能到的点,之前想的是dfs,然后各种debug。还是floyd大法好呀~
具体代码如下:
#include <iostream>#include <cstdio>using namespace std;const int MAXN = 310;int a[MAXN];char s[MAXN][MAXN];int main() { int n; scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d", a + i); for (int i = 0; i < n; ++i) scanf("%s", s[i]); for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) for (int k = 0; k < n; ++k) if (s[j][i] == '1' && s[i][k] == '1') //没有必要硬去记什么在内什么在外,只要记住最外层代表的是中间的连接点,floyd就很好记的 s[j][k] = '1'; for (int i = 0; i < n; ++i) { int mi = a[i]; //记录最小值 int p = i; //记录最小值对应的坐标 for (int j = 0; j < n; ++j) { if (s[i][j] == '1' && mi > a[j] && p < j) //值小,且排在后面的点 { mi = a[j]; p = j; } } swap(a[i], a[p]); } for (int i = 0; i < n - 1; ++i) printf("%d ", a[i]); printf("%d\n", a[n - 1]); return 0;}
0 0
- [CodeForces500B]New Year Permutation[floyd]
- codeforces500b New Year Permutation 【floyd】
- 【CodeForces500B】【贪心】New Year Permutation 题解
- 500B New Year Permutation(Floyd)
- CodeForces 500 B. New Year Permutation(贪心+Floyd)
- New Year Permutation(Floyd+并查集)
- 【codeforces】New Year Permutation(floyd算法进阶)
- Codeforces 500B New Year Permutation Floyd算法+贪心
- B - New Year Permutation
- B. New Year Permutation
- CF_500B New Year Permutation
- New Year Permutation
- New Year Permutation
- New Year Permutation
- New Year Permutation
- Good Bye 2014 B. New Year Permutation(并查集 ||Floyd )
- CodeForces 500B New Year Permutation (Floyd判断通路是否存在)(贪心)
- Codeforces 500B:New Year Permutation(并查集||Floyd+思维)
- Java多线程
- 汉诺塔问题——从分析到编码
- 多线程知识点2
- 机房收费系统——“七层”登录
- Android基础-获取网络上的图片并显示
- [CodeForces500B]New Year Permutation[floyd]
- 【Android 动画】Property Animation详解(二)
- hbase操作以及维护
- iOS系统导航栏的自定义化
- 深入理解javascript之内存分配
- POJ 3982
- Eclipse中.project和.classpath文件的作用
- “港独”喷发的这4年
- FTP