USACO: controlling companie
来源:互联网 发布:php mysql增删改查 编辑:程序博客网 时间:2024/06/08 03:31
类似于floyd的算法,不过在做完一遍之后,会引起下一次的改变(最后一组数组就是这样的,在这儿wa了),所以可能会做很多遍。设置一个flag,当某一遍没有引起改变时结束。
/*ID: LANG: C++TASK: concom*/#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#define IN "concom.in"#define OUT "concom.out"#define M 105using namespace std;int con[M][M];int map[M][M];bool visited[M][M];int n;void solve(){ memset(visited, false, sizeof(visited)); bool flag = true; while(flag) { flag = false; for(int i = 1; i <= 100; i++) { for(int j = 1; j <= 100; j++) { if(con[i][j] > 50 && !visited[i][j]) { visited[i][j] = true; for(int k = 1; k <= 100; k++) { if(map[j][k]) { flag = true; con[i][k] += map[j][k]; } } } } } }}int main(){ freopen(IN, "rb", stdin); freopen(OUT, "wb", stdout); while(scanf("%d", &n) != EOF) { memset(con, 0, sizeof(con)); for(int i = 0; i < n; i++) { int x, y, stock; scanf("%d%d%d", &x, &y, &stock); map[x][y] = stock; con[x][y] = stock; } solve(); for(int i = 1; i <= 100; i++) for(int j = 1; j <= 100; j++) if(i != j && con[i][j] > 50) printf("%d %d\n", i, j); } fclose(stdin); fclose(stdout); return 0;}
- USACO: controlling companie
- 【其他】【USACO】Controlling Companies
- usaco Controlling Companies
- USACO Controlling Companies DFS
- usaco Controlling Companies
- USACO Controlling Companies
- USACO:Controlling Companies
- USACO-Controlling Companies
- USACO Controlling Companies
- USACO Controlling Companies
- USACO-Controlling Companies
- usaco Controlling Companies
- USACO / Controlling Companies (类似BFS)
- USACO 2.3.5 Controlling Companies
- USACO 2.3 Controlling Companies (concom)
- USACO--2.3Controlling Companies+dfs
- USACO 2.3 Controlling Companies (DFS)
- USACO 2.3.5 Controlling Companies
- CloudBox uml设计图
- 进阶
- 第八周任务一(2) 友元函数的运算符重载 复数
- Android平台ROM的定制及精简教程
- GeekOS源代码学习(2)Main函数
- USACO: controlling companie
- 添加窗体以及菜单弹出命令
- vb 程序
- Spring+hibernate+springmvc 整合(四)
- java 对文件的读取
- vb
- 如何查找论文资料
- Ajax
- 继续谈android中Handler(一)