uva
文章平均质量分 81
sakulaaaa
这个作者很懒,什么都没留下…
展开
-
UVA11300 Spreading the Wealth 分金币 C++ (数学推导)
参考算法竞赛入门经典训练指南 /* 最后每个人的金币:M = (A1+A2+...+An)/n(设当前每个人的金币为Ai) 设xi表示i给i+1传递给了xi个金币(xn表示n给1传递了xn个金币) 为什么只表示第i给人给第i+1个人的金币数量?因为就算是i+1给i x个金币也可以表示i给i+1 (-x)个金币 那么每个人都满足方程组:A1+xn-x1 = M A2+x1-x2 = M A3+x2-x3 = M ... An+xn-1-xn = M 而最后答案就是求min(x1+x2+...+xn)x1原创 2021-08-10 12:26:19 · 122 阅读 · 0 评论 -
UVA1395 苗条的生成树 Slim Span(克鲁斯卡尔算法,并查集)C++
kruscal模板题,思路参考刘汝佳算法竞赛入门经典(第2版)例11-2 #include<iostream> #include<cstdio> #include<set> #include<cstring> #include<vector> #include<algorithm> using namespace std; const int maxn = 100 + 7; int fa[maxn]; int m, n; int原创 2021-08-06 15:14:15 · 113 阅读 · 0 评论 -
UVA11584 划分成回文串 Partitioning by Palindromes(回文串,dp)C++实现
学习算法竞赛的新手,思路参考紫书例9-7,具体操作见注释... #include<iostream> #include<cstring> using namespace std; const int maxn = 1000 + 7; bool s[maxn][maxn];//s[i][j]表示从下标i到下标j这个小区间里是否为回文串 int dp[maxn];//dp[i]表示下标0到下标i的最少回文串值 /*dp[i]=min{dp[j]+1|s[j+1~i]是回.原创 2021-08-03 17:32:53 · 95 阅读 · 0 评论 -
UVA1152 和为0的4个值 4 Values whose Sum is 0
题目描述 给出四个数组 A,B,C,D,每个数组中有n个整数。求有多少组 i,j,k,l满足 Ai+Bj+Ck+Dl=0。 输入格式 本题有多组测试数据。 第一行一个正整数T,表示数据组数。 对于每组数据: 第一行一个整数n。 接下来n行,一行四个整数,分别表示 Ai,Bi,Ci,Di。 输出格式 共 2×T行。 对于每组数据: 第一行一个整数,表示该组测试数据的答案。 接下来输出一个空行。 数据范围 1≤n≤4000。数组中所有数的绝...原创 2021-07-29 23:40:58 · 190 阅读 · 0 评论