hdu 4781 Assignment For Princess 构造
来源:互联网 发布:蜂群算法matlab代码 编辑:程序博客网 时间:2024/05/17 21:48
参考自:http://blog.csdn.net/dyx404514/article/details/16371295
其实可以不用预处理出点与点的距离的,看完参考的思路直接这样做了。。。
AC代码:
/* **********************************************Created Time: 2014-10-6 10:34:01File Name : hdu4781.cpp*********************************************** *///#pragma comment(linker, "/STACK:102400000,102400000")#include <iostream>#include <fstream>#include <cstring>#include <climits>#include <deque>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <utility>#include <sstream>#include <complex>#include <string>#include <vector>#include <cstdio>#include <bitset>#include <functional>#include <algorithm>using namespace std;typedef long long LL;const int MAXN = 105;const int MAXM = 1005;int n, m;int dis[MAXN][MAXN], flag[MAXN][MAXN];int res[MAXM][3];bool M[MAXM];int main(){ int T, cas = 0; scanf("%d", &T); while(T--) { scanf("%d%d", &n, &m); memset(flag, 0, sizeof(flag)); memset(dis, 0, sizeof(dis)); memset(M, false, sizeof(M)); int cotres = 1, dd = 1; // for(int i = 1;i < n; i++) { dis[i][i+1] = dd++; flag[i][i+1] = flag[i+1][i] = 1, M[dd-1] = true; res[cotres][0] = i, res[cotres][1] = i+1, res[cotres][2] = dis[i][i+1]; cotres++; } if(n%3 == 1) { dis[n][1] = n+2, flag[n][1] = flag[1][n] = 1, M[n+2] = true; res[cotres][0] = n, res[cotres][1] = 1, res[cotres][2] = dis[n][1]; cotres++; } else { dis[n][1] = n, flag[n][1] = flag[1][n] = 1, M[n] = true; res[cotres][0] = n, res[cotres][1] = 1, res[cotres][2] = dis[n][1]; cotres++; } //预处理出点与点的距离 for(int i = 1;i <= n; i++) { for(int j = i+1, cot = 1;cot <= n-1; cot++,j++) { j = j%(n+1); if(j == 0) j = 1; int t = (j-1); if(t == 0) t = n; dis[i][j] = dis[i][t] + dis[t][j]; } } int i; for(i = n;i <= m; i++) { if(M[i] == true) continue; bool mark = false; for(int t = 1;t <= n; t++) { for(int p = t, cot = 1;cot <= n-1; cot++) { p = (p+1)%(n+1); if(p == 0) p = 1; if(flag[t][p] == 0 && (i%3 == dis[t][p]%3)) { mark = true; flag[t][p] = flag[p][t] = 1; res[cotres][0] = t, res[cotres][1] = p, res[cotres][2] = i; cotres++; M[i] = true; break; } } if(mark == true) break; } if(mark == false) break; } printf("Case #%d:\n", ++cas); if(i != m+1) { puts("-1"); continue; } for(int i = 1;i <= m; i++) printf("%d %d %d\n", res[i][0], res[i][1], res[i][2]); } return 0;}
0 0
- hdu 4781 Assignment For Princess(构造法)
- HDU 4781 Assignment For Princess(构造)
- hdu 4781 Assignment For Princess 构造
- hdu 4781 Assignment For Princess(构造)
- hdu 4781 Assignment For Princess(构造法)
- hdu 4781 Assignment For Princess(构造法)
- HDU 4781 Assignment For Princess 图论,构造,思维
- HDU 4781 Assignment For Princess
- hdu 4781 Assignment For Princess
- HDU 4781 Assignment For Princess(YY乱搞)
- HDOJ--4781--Assignment For Princess【构造有向图】
- hdu 4781 Assignment For Princess (2013ACMICPC 成都站 A)
- HDU 4781 Assignment For Princess(构造所有圈权值和为3的倍数的有向图)
- hdu 4781 Assignment For Princess && 2013 Asia Chengdu Regional Contest && YY
- HDU 4781 Assignment For Princess(2013亚洲区成都站现场赛)
- hdu4781Assignment For Princess 构造
- 13成都A Assignment For Princess
- Assignment HDU
- Leetcode Longest Common Prefix
- Android ImageView maxHeight maxWidth
- .net下载优酷1080P视频
- 判断点是否在多边形内
- 20141006 N2
- hdu 4781 Assignment For Princess 构造
- Actionscript 3遍历数组大集合 for、for(in)、 for each(in)
- 研究生学位论文文献检索小技巧——妙用谷歌学术搜索
- 【LeetCode刷题】旋转数组的查找 Search in Rotated Sorted Array
- xcode6使用矢量图
- make bzImage时出现错误gcc: error: elf_i386/elf_x86_64: No such file or directory
- Java内存管理及垃圾回收总结
- java nio详解。。
- QStyleFactory