APOC-UVa
小白菜又菜
这个作者很懒,什么都没留下…
展开
-
APOC-UVA-0001 题解
PA(UVa709) :区间dp。状态转移方程:F(i,j)= min(F(i,k-1)+min_line(k,j)), i 其中,min_line(k,j)是以k开始,j结原创 2014-03-27 23:20:22 · 858 阅读 · 0 评论 -
UVa 11587 - Brick Game
题目:brick game是有一些连续编号的木块1~N,再给你一个若干整数构成的集合S; 两个人轮流取出集合S中存在的任意数字个木块,最后取走的人获胜,如果不能取,则对方获胜。 现在,给你一个游戏结果的序列串T,如果木块有k个,可能赢就是T[k] = W,一定输就是T[k] = L。 请你确定一个最小的集合,使得这个序列原创 2014-05-14 00:53:07 · 1538 阅读 · 0 评论 -
UVa 10889 - The Lost Gift
题目:给你R个红球和B个黑球,从这些球中取出相同颜色的概率是50%; 然后丢了一些黑球,剩下的黑球不少于原来的70%; 现在给你红球和剩下的黑球个数,求可能丢了几个黑球。分析:数学题。 首先,根据组合数学列出等式2*[C(n,2)+C(m,2)] = C(m+n,2):原创 2014-05-27 10:58:59 · 997 阅读 · 0 评论 -
UVa 698 - Index
题目:给你一些单词(数字和字母构成),再给你几行文章,要求建立单词所在行数的索引。分析:字符串、字典树。这题好恶心,数据范围完全没有╮(╯▽╰)╭,57次提交才AC。 数据分为单词表和文章两部分,每部分由一个空行做结束标志。 首先,将单词中的小写字母全部转化成大写字母,然后存入字典树。 然后,查找时将文章中所有的小写原创 2014-05-29 00:29:17 · 1234 阅读 · 0 评论 -
UVa 11294 - Wedding
题目:有一场婚礼,有n对夫妇参加,他们之间有些人之间有奸情(可能同性),在场的人中有一个公主, 她清楚其他人的人际关系,问能否安排座位使得两边都是n个人,且公主看不见有奸情的人同时在的对面。分析:2-SAT。直接按照看的流程敲的程序。 1.建图,矛盾的点建立对应的边(与一直关系相反); 2.利用Tarjan算法计算原创 2014-07-06 14:00:21 · 1283 阅读 · 0 评论 -
APOC-UVA-0003 题解
PA(UVa10975) :字符串统计。字典树或AC自动机。PB(UVa105) :简单题。给你一些扩区间中点的建筑,统计每个区间的最高值。PC(UVa752) :模拟题。四叉树储存图像,直接利用递归模拟求解即可。PD(UVa12373):数学题。在n*m的方形里放两个圆,问有多少种方法。原创 2014-07-06 15:14:32 · 698 阅读 · 0 评论 -
UVa 105 - The Skyline Problem
题目:在一个平面上给出n个底边共线的矩形,求出所有的高度的转折点。分析:简单题、暴力。由于数据范围是:区间个数5000、区间大小10000,直接利用10000的数组记录每个点的高度,不断在上面更新,最后扫描一遍数组即可。注意:如果h[i-1] #include #include #include int H[ 10005 ] = {0};int main(){ int原创 2012-11-21 10:02:19 · 2554 阅读 · 0 评论 -
zoj 2501 - A Mini Locomotive
题目:有一串数,从里面取出m个不同的区间,每个区间长度不能超过M,使得所取所有数字和最大。分析:dp,单调队列,区间最大字段和。因为数据都是正的不需要单调队列维护(否则要使用)。 区间最大字段和,求出每个元素作为结束标志的前k项和;取结束位置作为dp状态; 然后,利用单调队列维护区间长度,O(1)时间查找满足长度的最小的前j项和,做差即可。原创 2014-09-27 09:35:35 · 842 阅读 · 0 评论 -
UVa 11827 - Maximum GCD
题目:给你一组数,求出其中两两最大公约数中最大的值。分析:数论。数据较小,直接枚举即可。说明:注意输入格式。#include #include #include using namespace std;int data[101];int gcd(int a, int b){ return a%b?gcd(b, a%b):b;}int main(){ int原创 2014-10-23 15:09:24 · 2242 阅读 · 0 评论 -
UVa 825 - Walking on the Safe Side
题目:在一个N*M的网格中,从左上角走到右下角,有一些点不能经过,求最短路的条数。分析:dp,帕斯卡三角。每个点最短的就是走N条向下,M条向右的路。 到达每个点的路径条数为左边和上面的路径之和。说明:注意数据输入格式。#include #include #include #include using namespace std;int smap原创 2014-10-24 15:30:37 · 1390 阅读 · 0 评论 -
UVa 11385 - Da Vinci Code
题目:达芬奇密码。分析:原创 2014-05-22 21:17:47 · 1151 阅读 · 2 评论 -
UVa 11723 - Numbering Roads
题目:有R条街道,和n个数字编号,原创 2014-05-22 10:19:20 · 719 阅读 · 0 评论 -
UVa 243 - Theseus and the Minotaur (II)
题目:忒修斯和牛头人,这是个很有名的古希腊神话故事。题目的描述也不是一般的长啊。 估计很多人是被英文吓跑了,╮(╯▽╰)╭为了干掉他,看了3天的题目。 题目大概的意思:这有一个迷宫,由山洞和隧道组成,T(忒修斯)和M(牛头人)开始时 处于迷宫的隧道中,然后向前走。T的运动规则是,进入到一个洞穴后,就靠着右侧的强走,原创 2014-03-27 22:43:08 · 1641 阅读 · 0 评论 -
UVa 752 - Unscrambling Images
题目:四叉树编码图片,根节点编号为0,每个节点的编号是:父节点*4 + i(1~4)。 四叉树可以通过改变子树的顺序来加密数据。现在,给你一个对标准树的编码。 (标准树:从左上到右下编码0~(n^2-1)),利用它对其他编码树解码。分析:模拟题。将数据打表映射,然后对相应的位置解码即可。利用函数fix,每次递归处理。 如原创 2014-04-02 08:48:20 · 1616 阅读 · 0 评论 -
UVa 12373 - Pair of Touching Circles
题目:给你一个n*m的矩形的空间,在里面放入,圆心和半径都是整数的2个相切圆。 有多少种不同的方法,旋转后相同的认为是不同的。分析:数论。两圆有一个最小的放置边界矩形,求出矩形的摆放个数即可。 能够符合题目条件的只有两种情况: 1.两圆的连心线与矩形的边界平行; 2.两圆的连心线是斜边,但是原创 2014-04-02 22:00:59 · 1277 阅读 · 0 评论 -
UVa 858 - Berry Picking
题目:给你一个平面的多边形,再给你一条平行于y轴的直线,问直线被多边形截取的总长是否超过目标。分析:计算几何。 方法一:1.求出所有直线和多边形交点。(O(N)) 2.对交点按纵坐标排序,则排序后这些点一定相邻。(O(NlgN)) 3.判断每对相邻点间的原创 2014-03-26 16:02:43 · 1310 阅读 · 0 评论 -
UVa 11935 - Through the Desert
题目:你有一辆车,有一串车的运动序列,问车最少的油箱是多大,才能完成这个指令序列。 Fuel consumption n:n/100 km 耗油 Leak:漏洞增加一个,每个洞 1/1 km 耗油 Gas station:加满油 Mechanic:修好所有的漏洞 Goa原创 2014-03-26 15:19:39 · 1206 阅读 · 0 评论 -
UVa 11968 - In The Airport
题目:在机场买东西,有饮料和蛋糕,问最接近所有物品平均价格的饮料和蛋糕的价钱。分析:简单题。直接平均值,比较即可,防止精度误差,都乘以物品总数。注意:要用long long类型,防止数据溢出。#include #include #include using namespace std;int m[1001];int k[1001];int n[1001];long原创 2014-03-26 15:24:38 · 763 阅读 · 0 评论 -
UVa 709 - Formatting Text
题目:给你一段文字,让你对文字排版,每行的最大长度有限制L,有一个对于排版格式的权值公式: P = sum((单词间空格-1)*(单词间空格-1)) 求出P最小的一种排版,F相同时输出前面的空格最少的。分析:DP。看见题目第一想到的就是利用dp,设F(i,j)是从第i个单词开始排版,到第j个单词结束的最小P原创 2014-03-26 14:59:16 · 1902 阅读 · 0 评论 -
UVa 10975 - Dueue's Quiz
题目:给你一些单词组成一个字典,然后再给你一个由字母组成的矩阵,连接横、竖和斜线可以组成单词。 统计字典中,每个单词出现的次数。分析:字符串、字典树(Trie)、AC自动机。单词统计问题,一定想到字典树和AC自动机。 首先,将字典存入字典树(可以在字典树上构造AC自动机,加快查询) 然后,枚举每条直线上的单词查询计数原创 2014-04-13 20:23:05 · 4577 阅读 · 0 评论 -
APOC-UVA-0002 题解
╮(╯▽╰)╭这5个题目做了1个月ai原创 2014-05-14 01:16:22 · 944 阅读 · 0 评论 -
UVa 10820 - Send a Table
题目:找到整数区间[1,n]中多有的互质数对。分析:数论,筛法,欧拉函数。在筛素数的的同时,直接更新每个数字的欧拉函数。 每个数字一定会被他前面的每个素数筛到,而欧拉函数的计算是n*π(1-1/pi); 其中,pi是n的素数因子,所以可以利用筛法来计算欧拉函数,然后求和; 注意,这时求出的欧拉函数为所有小于n的数m与原创 2014-10-27 13:09:40 · 1211 阅读 · 0 评论