ACM水题
HZ-VUW
这个作者很懒,什么都没留下…
展开
-
UVALive 6924 暴力
题意t个样例,每个样例n个学生,每个学生有一个编号。将学生按编号分成四组,问如何分最均匀。题解暴力,a的暴力范围为0-159,b的暴力范围为(a+1)-159,c的暴力范围为(b+1)-159。代码#include <iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#define INF原创 2017-02-25 20:09:50 · 303 阅读 · 0 评论 -
HDU 4995 暴力
题意N个点,M次查询。每次查询求与点Q相邻的最近K个点的平均值,并将点Q的值换为平均值。M次查询后,求平均值之和。题解暴力。对N个点按X值进行排序。针对每个点计算出其K临近点之和平均值。然后,在查询时调用计算出的结果即可。注意事项这道题最大的坑是排序以后会导致原输入顺序混乱,而题目中要求,如果与点Q距离相同,则根据输入顺序,选择输入顺序先的点。因此需要在输入点的时候记录输入位置。代码#include原创 2017-04-03 21:04:18 · 492 阅读 · 0 评论 -
HDU 5353 模拟
题意N个人首尾相连,每个人可以给旁边的人一个SODA,也可以从旁边的人那里拿一个SODA。两个人之间给或拿只能操作一次,求是否存在操作方案,使得最后所有人SODA数目相同。题解模拟。第一个人可能从第二个人那里拿一个SODA,也可能给第二个人一个SODA,也可能不操作。模拟三种情况即可。注意事项需要注意某一个人的SODA初始数与平均值差2,依然有可能经过几次操作后,每个人的SODA数目相同。代码#in原创 2017-04-04 15:32:01 · 352 阅读 · 0 评论 -
ECNU 3263 贪心
题意中文题,不解释题解一道有关贪心的水题,题解说O(N^2)就可以过。首先可以对右端点进行排序,然后对于每个区间,从右到左放灯,这样的话必然是最优解。注意事项注意无解的情况,此时要输出-1代码#include <bits/stdc++.h>#define MAXN 1010using namespace std;struct Node{ int l,r,num;};int cmp(N原创 2017-05-16 14:04:21 · 288 阅读 · 0 评论 -
ZOJ 3674 JAVA API
题意给一组单词,每个单词都有一些标签。然后进行M次查询,每一次查询给多个单词,问这些单词的公共标签。题解正解好像是字典树。。但是JAVA API暴力轻松搞定。也没有什么技术含量,就用了List的一个方法,retainAll()两个集合之间求交集。注意事项首先需要特别注意输入数据单词结尾可能存在多个空格,对于这种情况split之后一定要过滤掉空字符串,不然的话会RE。然后还需要注意按照字典序输出。代码原创 2017-08-16 09:03:27 · 203 阅读 · 0 评论 -
UVALive 7752 模拟
题意有许多个盒子,只能把小的套到大的里面,如果一个盒子没有套在另一个盒子里面,则被称为free盒子。我们有两种操作,一种是将一个free盒子放入一个free盒子中,另一种是从一个盒子中从倒数第二个位置取出一个盒子使之变为free盒子。问最少需要操作多少次。题解首先需要确定暴力策略,我们需要明确由于求的是最少次数,因此我们取出来盒子以后不需要再放回去,只有在需要放回去的时候再放回去。我们首先模拟一边取原创 2017-09-13 21:03:22 · 243 阅读 · 0 评论 -
HDU 1800 STL
题意有N个数,如果可以抽出一个序列x1 < x2 < .. < xn,那么这个序列只需要花费一个扫帚,问这N个数最少需要多少个扫帚(一个数被抽出以后不能再使用)题解看有很多题解使用字典树做这道题,其实完全没有必要,一道MAP水题。需要的扫帚个数就是出现最多的数字个数。注意事项注意不要使用string取读,可能存在’001’,’01’,’1’这样的情况,事实上这三个字符串代表同一个数。代码#inclu原创 2017-09-08 21:32:44 · 232 阅读 · 0 评论 -
XTU1262 优先队列
题解使用优先队列模拟一下就可以了,但是需要注意进行优化,题目有b=0的情况,也就是说无论如何捞鱼都不会变,这种情况需要直接优化掉,不能进行模拟,否则会超时。代码#include <bits/stdc++.h>#define LL long long#define UP(i,l,h) for(int i=l;i<h;i++)#define DOWN(i,h...原创 2018-04-08 12:53:17 · 485 阅读 · 0 评论