摘要: 这道题和上次周杰出的相似三角形题,是我们校队在2011区预赛中做对的唯一的两道题,最终校队是以罚时的微弱劣势丧失银牌~解题思路很多种,这里提供一种自己的思路首先题目求解最小生成树(MST);这里用Prim算法并把最小生成树边的集合存起来;然后依次去掉每条边,考虑这个n-2边的图,两个for循环依次枚举这两个连通图上的点;得出最优值。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 const int maxn=1000+10; 5 typedef struct 6 阅读全文
posted @ 2012-04-25 21:30 LETTers 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 这是其它国家区预赛的题目,大家可以看出来区域现场赛最简单题的难度。解题的思路很容易想到,四则运算处理可能比较麻烦~但是经过细心调试应该问题不大;还有就是排列的生成可以自己写,但是这里提倡用next_permutation()函数!还有一点是要注意结束的判断。 以下是参考解题程序:View Code 1 #include<stdio.h> 2 #include<stack> 3 #include<algorithm> 4 #include<ctype.h> 5 #include<string.h> 6 using namespace s 阅读全文
posted @ 2012-04-25 21:27 LETTers 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 状态为DP[x][y][z]=DP[x-1][y][z-1]+DP[x][y-1][z]+DP[x][y][z-1];注意一点数值为长整型!#include<stdio.h>#include<string.h>const int maxn=20;__int64 f[maxn][maxn][maxn];int vis[maxn][maxn][maxn];__int64 Solve(int a,int b,int c){ if(a<0||b<0||c<0)return 0; if(vis[a][b][c])return f[a][b][c]; vis[a] 阅读全文
posted @ 2012-04-25 21:25 LETTers 阅读(124) 评论(0) 推荐(0) 编辑