uva代码
uva上的一些编程题
NeverMoreH
^_^
展开
-
uva1505(暴力)
题意:给出3种化学物质(a、b、c)的数量,告诉你a和b结合成ab给你带来的收益,还有bc、ac的收益,问你用所给的数量能得到的最大收益。思路:合成的东西只有三种,我们只需要暴力ab、ac和bc的数量,取最优的。代码:#include#include#include#include#include#include#include#include#原创 2015-08-14 16:56:44 · 257 阅读 · 0 评论 -
uva1515(模拟)
题意:一只乌龟,最开始在坐标原点上,他有四种操作,如下:F:向当前方向前进一步(乌龟的初始方向是向上↑);B:向当前方向的相反方向前进一步;L:向左转90度,不进行移动;R:向右转90度,不进行移动;现在给出你一个字符串,由FBLR组成,问乌龟走完路径之后,他走过的点覆盖的面积。思路:模拟即可,没什么可说的。代码:#include#incl原创 2015-08-14 17:19:36 · 443 阅读 · 0 评论 -
uva1507(状态压缩+dfs)
题意:给出我们n种物品,每种物品都有五个值,分别是a、b、c、d、e,我们要在这n个物品中选出k个,使得这k个物品中的max{a}+max{b}+max{c}+max{d}+max{e}最大,输出最大值。思路:n的范围有10000,而每个人只有五个值,我们不能从n入手,可以从这五个值入手。五个值,我们可以用二进制进行压缩,对于一个物品,我们用00000~11111来表示所有原创 2015-08-14 17:03:47 · 329 阅读 · 0 评论 -
uva1504(模拟+暴力)
题意:给出第一象限的n个矩形的左下角坐标和右上角坐标,我们先把所有矩形向下移动,直至所有矩形都不能移动,然后把所有矩形都向左移动,直至所有矩形都不能移动,如此往复,直至所有矩形都不能移动,问最后所有矩形能覆盖到的x和y的最大值。思路:最开始以为是线段树,不知道该怎么写,而且巨麻烦,后来旁边的丧失说暴力。。。暴力!!!那就暴力吧,我们每次对所有矩形进行移动的时候先对矩形进行排原创 2015-08-14 16:48:56 · 565 阅读 · 0 评论 -
uvalive5798(树状数组)
题意:单点更新,区间求和,求和操作和普通的求和不一样,如果我们要求2~5的和,sum=1*f[5]+b*f[4]+b*b*f[3]+b*b*b*f[2],输出每个询问操作的答案,同时答案要模p。思路:我们可以在操作的时候直接给每个位置的数字成上b的多少次幂,例如如果是五个数字,我们插入f1时,我们不插入f1,而是插入f1*b*b*b*b,插入f2时,我们插入f2*b*b*b,这原创 2015-08-18 09:05:14 · 285 阅读 · 0 评论 -
uvalive5796(图论、桥、并查集)
题意:给出一个无向图,每次询问,问两个点之间是否有一条唯一的不经过重复点的路径。思路:如果存在这样的路径,那么路径上的点就都是桥,我们可以找出图中所有的桥,把非桥边删去,把桥连的点塞到并查集中,查询的时候每次只要看两个点是否在同一个并查集即可。这题比赛的时候没过,赛后也没写,贴一个我们校一队的代码吧。代码:#include#include#include原创 2015-08-18 09:27:34 · 1592 阅读 · 0 评论 -
uvalive5843(最大流)
转载自:http://vawait.com/uvalive-5843/题意:给出n个工人,给出m个命令,每条命令给出这条命令的最早开始时间、最晚结束时间和完成这条命令所需要的时间,求出一种方案使得完成时间最早。思路:源点到每个工作添加流为工作时间,从工作到每个时间点添加流为1,从每个时间点到汇点添加流为工人数目。代码:#include#includ转载 2015-08-15 12:32:36 · 314 阅读 · 0 评论 -
uva1511(找规律。。。)
题意:给出n个点,n个点构成了完全图,每条边是红色或者是蓝色,问这个图中有多少个三角形三条边都是同一个颜色。思路:本想暴力,看见榜单上大家都TLE了,不敢暴力了,就找规律。画图发现,如果三个点的边不是同一种颜色,那么一定有两个点连着不同颜色的边,所以我们统计每个点连着的红色边和蓝色边的个数,把它们相乘,累加之后除以二代表了不是三条边颜色相同的三角形的个数,用C(n,3)一减原创 2015-08-14 17:15:17 · 268 阅读 · 0 评论 -
uva1509(暴力dfs)
题意:给出两个字符串,第一个字符串中的每个字符(只包括小写字母)最多可以变成k(k思路:串的长度只有15,直接暴力,用dfs+回溯去枚举所有情况。代码:#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-08-14 17:08:05 · 400 阅读 · 0 评论 -
uvalive5790(DP)
题意:给出一个数字三角形,你如果想要取出一个格子的数字,必须把这个格子的父亲都取走,问你能取走的最大值。思路:想到如下的转化:我们就可以把此题变成在第二个图形上选择矩形,具体细节请看代码。代码:#include#include#include#includeusing namespace std;int sum[1005][1005];原创 2015-08-18 09:03:54 · 293 阅读 · 0 评论 -
uvalive4744(数论)
题意:给出题意中那么个函数,给出a、b、p、n,求函数调用的次数(mod p)。思路:能很容易看出来a和b的阶数是斐波那契数,n过大,用矩阵快速幂求斐波那契数,然后用欧拉函数进行取模的优化。代码:#include#include#include#includeusing namespace std;#define maxn 1000050long原创 2015-10-04 19:39:09 · 478 阅读 · 0 评论