- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 UVa 11330 - Andy's Shoes
题目:有双配对出错鞋子,要求最少的交换次数,使得鞋子配对摆放。分析:组合数学,置换群。统计置换中循环的个数k,则结果为n-k。 循环内部(设有m个元素)需要交换m-1次(除最后一次,每次交换最多只能有一个复位)说明:注意鞋子的编号不一定是1~n,是1~10000之间的数字,计算时需要做映射。#include #include #include #incl
2015-05-29 01:22:35 1613
原创 UVa 11524 - InCircle
题目:已知一个三角形内切圆的半径r,以及它分三条边的逆时针比例,求三角形面积。分析:计算几何。利用面积公式联立等式计算即可,这三边为k*a,k*b,k*c。 根据内切圆计算面积S△ABC = r*k(a+b+c)/ 2; 根据海伦公式计算面积S△ABC = sqrt(p(p-a)(p-b)(p-c)) { 其中p = k (a+b+c)/ 2
2015-05-19 15:30:06 1261
原创 UVa 343 - What Base Is This?
题目:已知两个数字串,问他们分别是多少进制时相等。分析:简单题。直接枚举每个数字的不同进制(最大的数字+1 ~ 36),转换成10进制判断相等即可。说明:数值转换到10进制时数字不超过整形范围。#include #include #include #include #include #include using namespace std;//计算字符数值 int
2015-05-18 00:17:23 2039
原创 UVa 11703 - sqrt log sin
题目:已知x的递归公式,求x[n]。分析:简单题。直接计算即可:x0 = 1;xi = x⌊i-sqrt(i)⌋ + x⌊ln(i)⌋ + x⌊i sin2(i)⌋。说明:打表计算查询输出。#include #include #include #include #include #include using namespace std;int x[1000001];
2015-05-17 23:30:07 1294
原创 UVa 10519 - !! Really Strange !!
题目:一个举行内有n和圆,他们分别互相相交于不同的两个点,问他们把平面分成几部分。分析:大整数,递推。F(n)= F(n-1)+ 2(n-1)。 如果已经有n-1个圆,加入第n个,分别与前n-1个圆相交生成2(n-1)个交点,把圆分割成2(n-1)段弧; 每段弧会把他所属的区域一分为二,F(n)= n(n-1)+ 2 { 其中,n ≥ 1 }
2015-05-17 15:30:12 814
原创 UVa 10635 - Prince and Princess
题目:在一个n*n的棋盘上,格子标号1~n*n,现在有两个人从1跳到n*n(不走重复点), 现在要求去掉最少的中间点,使得路径是一样的。分析:dp,LIS,LCS。问题是求最大公共子序列,数据较大需要O(nlgn)算法。 发现题目中的数据是不重复的,所以可以转化成最大上升子序列; 记录序列1中每个元素对应的顺序,将序
2015-05-13 23:01:17 1608
原创 UVa 10910 - Marks Distribution
题目:考试有N门科目,总分是T,每门分数不少于P,问有多少种不同的分数。分析:dp,动态规划,组合数学。整数拆分,可以用动态规划求解。 这里使用组合数学,另V = T - P*N,则为V个相同球放入N个不同盒子的模型,可以空; 解为C(V+N-1,N-1)。说明:╮(╯▽╰)╭。#include #include #include
2015-05-12 23:18:29 990
原创 UVa 11149 - Power of Matrix
题目:一直方阵A,计算A + A^2 + A^3 + ... + A^n。分析:分治,快速模幂。 设F(n)= A + A^2 + A^3 + ... + A^n则有; F(n)= F(n/2)+ F(n/2)* A^(n/2)+ R;(n为奇数存在R,为A^n) = F(n/2){E +
2015-05-11 23:41:28 1246
原创 UVa 10689 - Yet another Number Sequence
题目:给你Fib数列的前两项,求第n项的后m位的值。分析:矩阵快速模幂。见本博客的:斐波那契数列说明:╮(╯▽╰)╭。#include #include #include #include #include #include using namespace std;class matrix{ private: int data[2][2]; public:
2015-05-11 20:34:20 731
原创 UVa 10385 - Duathlon
题目:有一个比赛分成跑步和骑车两部分,总长度一定(L),最后的参赛者贿赂了裁判, 裁判会调节两部分的比例,他想要求超过第二名的最大值。分析:三分求单峰函数最值。设第一部分长度是x,第二部分的长度是L-x,t(x)= x / v +(L-x)/ u; f(x)= max(x / vn +(L-x)/ un -(x / vi +(L-x)/ ui
2015-05-10 23:59:35 1303
原创 UVa 1476 - Error Curves
题目:给你n条开口向上的二次曲线Si(a>0),定义F(x) = max(Si(x)),求F(x)的最小值。分析:三分。F(x)是一个单峰函数,先单调递减后单调递增,利用三分求最小值。 首先,证明两个二次函数构造的F2(x)为单峰函数; (如果不成立,则存在两个连续的波谷,那么交点处一个函数递增另一个递减,矛盾
2015-05-10 09:28:29 1325 2
原创 UVa 133 - The Dole Queue
题目:给你一串数字按照环形排列,每次向后数k个向前数m个的删掉,如果相同只删掉一个,输出删数字的顺序。分析:约瑟夫环变形,模拟。直接模拟过程输出即可。说明:注意%3d输出即可。#include #include #include #include #include #include using namespace std;int people[21];int ma
2015-05-06 23:49:18 1032
原创 UVa 1524 - Hot or Cold?
题目:给你一个温度随时间的多项式函数,计算某一时间内的平均温度。分析:数学题,微积分。直接对f(x)求积分得到f(x)的原函数F(x)+ C,C为某常数; 平均温度即为(F(e)- F(s))/ (e - s)= (F(e)+ C - F(s)- C)/ (e - s)。说明:╮(╯▽╰)╭。#include #include #include #inc
2015-05-06 00:01:18 1051
原创 UVa 257 - Palinwords
题目:判断一个字符串内是否存在两个以上互不为子串的回文串(3个字符以上)。分析:枚举。直接枚举3-4个字符的回文串即可。说明:╮(╯▽╰)╭。#include #include #include #include #include #include using namespace std;bool list[457000];char buf[260],save[26
2015-05-03 14:24:03 836
原创 UVa 1556 - Disk Tree
题目:给你一下文件的路径,对文件的路径按照字典序的输出,如果有子目录,下载父目录的下面, 前面加上和深度相同的空格。分析:字典树,字符串。将路径分解成多级的文件夹和文件,然后按字典序多级排序即可。 这里利用字典树作为存储的数据结构,便于查询。说明:注意去重。#include #include #include #include
2015-05-03 09:56:29 1129
原创 UVa 11556 - Best Compression Ever
题目:给你n个文件,问用b+1位2进制数能否进行编号(不包括全0的编号)。分析:简单题。直接比较n与(1说明:使用long long防止溢出。#include #include #include #include #include #include using namespace std;int main(){ long long n,b,m; while (c
2015-05-02 20:31:52 1014
原创 UVa 11561 - Getting Gold
题目:给你一个二维的地图,里面有陷阱'T',金子'G'以及墙壁'#',和普通的道路'.',现在已知一个人在起点'P'; 每次只能走到上下左右4个方向的格子,如果走到一个格子周围有陷阱,人就会停下不走,防止陷阱; 问最多能得到多少金子。分析:图论,搜索。直接利用dfs求解即可,把'T'周围的点标记成停止即可。说明:╮(╯▽╰)╭。#in
2015-05-02 07:34:13 1136
SOFA: A Multi-Model Framework for Interactive Physical Simulation
2018-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人