自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

水果君の日常

追随各位大神的脚步.... *新博客:illuz.github.io,本博客继续使用

  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 NYOJ 45 棋盘覆盖 模拟+高精度

题意就不说了,中文题。。。小白上讲了棋盘覆盖,于是我就挖了这题来做。棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下。公式就是f(k) = f(k - 1) * 4 + 1,再化解下就是4^0 + 4^1 + 4^2 + ... + 4^(n-1)。思路很简单,但是题目没想象中的简单,刚开始天真的用递归模拟了下就交上去,立马wa掉。。。发现即使用Long long类

2013-08-31 21:40:41 1546 2

原创 UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟

题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求最小路费。在纸上模拟了一下,你会发现一家店如果卖酒,它的最终流向就是向两边运送;如果买酒,那它就在那边等别家店送酒过来。(我在废话。。。)然后第一家店肯定是向右边运酒了,最小的运费当然

2013-08-30 20:18:44 4254

原创 UVA 10954 Add All 全加一起 模拟+贪心+优先队列

题意:规定每次加法的运算量为加法的和,给你n个数,要你全部加起来,尽量让运算量为最小。要让运算量最小,只要每次找最小的两个数加起来就行了,之后得把和放回数组重新排序。数据量为5000×100000,5e+8,用int是可以的,但是我刚开始果断用的long long,然后A掉之后改成int型,顺便把cout改成printf,结果慢了3ms,还以为是cout在拖慢速度,网上查了一下,发现cou

2013-08-30 19:30:23 2193

原创 hdu 1394 zoj 1484 求旋转序列的逆序数(并归排序)

题意:给出一序列,你可以循环移动它(就是把后面的一段移动到前面),问可以移动的并产生的最小逆序数。求逆序可以用并归排序,复杂度为O(nlogn),但是如果每移动一次就求一次的话肯定会超时,网上题解都说可以用并归做,想了好久,最后发现"the next line contains a permutation of the n integers from 0 to n-1",坑爹的家伙,这些数竟然

2013-08-30 11:52:39 1789

原创 rqnoj 173 Fish学数学 求逆序数,并归排序的应用

题目是中文的。。其实就是求一个序列的逆序对数,裸体。用分治的思想来做,并归排序稍微修改下就可以了。代码: /* * Author: illuz * Blog: http://blog.csdn.net/hcbbt * File: rqnoj173.cpp * Lauguage: C/C++ *

2013-08-30 10:13:44 2312

原创 UVA 10714 Ants 蚂蚁 贪心+模拟 水题

题意:蚂蚁在木棍上爬,速度1cm/s,给出木棍长度和每只蚂蚁的位置,问蚂蚁全部下木棍的最长时间和最短时间。模拟一下,发现其实灰常水的贪心。。。不能直接求最大和最小的= =。只要求出每只蚂蚁都走长路下木棍时的最大值,和走短路时的就行了。代码: /* * Author: illuz * Blog: http://blog.csdn.net/

2013-08-29 23:27:23 2113

原创 UVA 311 Packets 贪心+模拟

题意:有6种箱子,1x1 2x2 3x3 4x4 5x5 6x6,已知每种箱子的数量,要用6x6的箱子把全部箱子都装进去,问需要几个。一开始以为能箱子套箱子,原来不是。。。装箱规则:可以把箱子都看成正方体,装在6x6的盒子里。典型的贪心题。思路:(参考了Starginer大神的)①每个6*6的都占一个箱子。②每个5*5的放在一个箱子里,同时里面还能装11个1*1的。③每

2013-08-29 20:55:32 2692

原创 NYOJ 422 字串和之差

题目虽然是中文的,但说的不是很清楚,求的是连续子序列和的绝对值的最大值和最小值,然后求两个绝对值的差。刚开始还以为是最大连续子序列和的问题,发现不一样,想了一会样例,然后看了discuss后才理解了题意 = =。分析:这题考察的是对前n项和的理解,因为要求连续子序列和,某连续子序列和[a,b]其实就是前b项和-前a-1项和的差。而求最大值最小值就是求前b项和与前a-1项和的差最小,

2013-08-29 20:03:30 1693

原创 六种姿势拿下连续子序列最大和问题,附伪代码(以HDU 1003 1231为例)

问题描述:      连续子序列最大和,其实就是求一个序列中连续的子序列中元素和最大的那个。      比如例如给定序列:           { -2, 11, -4, 13, -5, -2 }        其最大连续子序列为{ 11, -4, 13 },最大和为20。=================================================

2013-08-28 21:13:53 22213 18

原创 UVA 10026 Shoemaker's Problem 鞋匠的难题 贪心+排序

题意:鞋匠一口气接到了不少生意,但是做鞋需要时间,鞋匠只能一双一双地做,根据协议每笔生意如果拖延了要罚钱。给出每笔生意需要的天数和每天的罚钱数,求出最小罚钱的排列顺序。只要按罚款/天数去从大到小排序,如果比例一样就按序号排序(要求字典序)。解释我就不献丑了,附上Staginner大神的证明:对于为什么贪心策略是这个样子的,我们不妨拿相邻的两个事件a、b来说明一下。由于a、b之后的事

2013-08-26 00:01:09 3287

原创 UVA 10700 Camel trading 无括号的表达式 贪心

题意:给出只包含数字和+*的表达式,你可以自己安排每一个运算的顺序,让你找出表达式可能得到的最大值和最小值。很明显,先乘后加是最小值,先加后乘能得到最大值。其实不是很明显。。。证明下:数字的范围是大于等于1的,所以a+b*c如果先考虑加法就变成(a+b)*c,变换下就是ac+bc,而先考虑乘法的话就是a+bc,由于c是大于等于1的,所以ac+bc>=a+bc,先考虑加法结果会不小于

2013-08-26 00:00:42 1764

原创 UVA 10340 All in All 子序列判定 贪心

题意:给出两个字符串,问第一个字符串是否是第二个的子序列。(不一定需要连续的字串)只要每次从左向右寻找匹配字符,找到父序列的最右匹配字符的字串,然后从它的下个位置继续找下一个匹配。如果找完父串还没找到就表示不是子序列,如果找到就退出。代码: /* * Author: illuz * Blog: http://blog.csdn.net/hc

2013-08-25 21:49:31 1416

原创 UVA 10057 A mid-summer night's dream. 仲夏夜之梦 求中位数

题意:求中位数,以及能成为中位数的数的个数,以及选择不同中位数中间的可能性。也就是说当数组个数为奇数时,中位数就只有一个,中间那个以及中位数相等的数都能成为中位数,选择的中位数就只有一种可能;如果为偶数,中位数又两个,同样和那两个相等的数都能成为中位数,在[第一个中位数,第二个中位数]这一区间中拥有的整数个数就是所求的第三个数。分类讨论,模拟即可。代码: /* * Autho

2013-08-25 21:42:16 2443

原创 UVA 10341 Solve It 解方程 二分查找+精度

题意:给出一个式子以及里面的常量,求出范围为[0,1]的解,精度要求为小数点后4为。二分暴力查找即可。e^(-n)可以用math.h里面的exp(-n)表示。代码:(uva该题我老是出现Submission Error,过几天再试看看) /* * Author: illuz * Blog: http://blog.csdn.net/hc

2013-08-25 21:35:19 2137

原创 UVA 270 Lining Up 共线点 暴力

题意:给出几个点的位置,问一条直线最多能连过几个点。只要枚举每两个点组成的直线,然后找直线上的点数,更新最大值即可。我这样做过于暴力,2.7s让人心惊肉跳。。。应该还能继续剪枝的,同一直线找过之后就可以剪掉了。代码: /* * Author: illuz * Blog: http://blog.csdn.net/hcbbt * F

2013-08-25 21:30:59 1494

原创 UVA 10763 Foreign Exchange 出国交换 pair+map

题意:给出很多对数字,看看每一对(a,b)能不能找到对应的(b,a)。放在贪心这其实有点像检索。用stl做,map+pair。记录每一对出现的次数,然后遍历看看对应的那一对出现的次数有没有和自己出现的此时一样即可。代码: /* * Author: illuz * Blog: http://blog.csdn.net/hcbbt *

2013-08-25 21:13:10 2411

原创 UVA 10905 Children's Game 孩子的游戏 贪心

题意:给出N个数,要求把它们拼凑起来,让得到的数值是最大的。只要分别比较两个数放前与放后的值的大小,排序后输出就可以了。比如123和56,就比较12356和56123的大小就行了。写一个比较函数,然后用sort调用就行了。刚开始时用long long做,每次比较都让数相连,然后比较大小,后来发现数据好像会很暴力,即使longlong也不够大。考虑到两个数相连后两种情况长度都一样

2013-08-25 21:08:23 2796

原创 UVA 10815 Andy's First Dictionary 安迪的字典 stl应用 set+string做法

题意:给出一串单词,把所有单词改小写去重按字典序输出。以前做过c的版本,现在用stl又写了一遍,当做练习。set可以解决去重和排序问题。代码:#include #include #include #include #include using namespace std;set d;int main() { string s; char ch; while

2013-08-24 00:50:04 2846

原创 UVA 10194 Football (aka Soccer) 足球成绩统计 检索+模拟

题意:先读入球队信息,再按“team_name_1#goals1@goals2#team_name_2”的格式读入球队的比赛情况,然后统计各个球队的比赛得分,进球数,丢球数等等各项指标。最后按题目给定的顺序输出各个球队的信息。这题一个非常坑的地方就是在排序时队名的排序是按小写排的,看了别人博客上提醒才发现有这回事。。。还有一个我被坑很久的就是球队的排序不是各指标全部都是从大到小排的。。。这

2013-08-24 00:45:34 2716

原创 UVA 123 Searching Quickly 快速查找 multimap+模拟+检索

题意:给出一系列要忽略的单词,这些单词以外的单词都看作关键字。然后给出一些标题,找出标题中所有的关键字,然后按这些关键字的字典序给标题排序。注意两点:相同关键字出现在不同标题中,出现在输入较前位置的标题排在前面(从样例数据可以看出,而且multimap也正是这么做的);同一个关键字在一个标题中出现多次,关键字位于较前位置的排在前面(从左向右扫描的话就没有问题)。这题略坑,功力不够参考了心如

2013-08-24 00:28:42 1647

原创 UVA 156 Ananagrams 模拟+字符串处理

题意:把每个单词全部转化成小写字母,对每个单词,看它的字母重排后得到的单词在所有输入的单词中是否出现过,若没有出现,就输出原单词。所有要输出的单词按字典序排列输出。这题的模拟没有那么裸,要求挺多的,还是需要思考下的,首先把全部单词都读入并转换成小写并排序,然后把重复的单词去掉,最后把剩下的单词排序并输出原单词。由于要输出原单词,于是我构造了个结构体,去重就把结构体里面的bool值改掉,然后

2013-08-24 00:23:06 3158 2

原创 UVA 299 Train Swapping 列车交换 冒泡排序简单模拟

题意:到老舊的火車站你也許會遇到少數僅存的"車箱置換員",車箱置換員是車站的員工,他的工作是重新排列火車車箱。當每節車箱(尤其是裝貨的車箱)都經過適當的排列之後,火車司機在每個車站卸貨時只需從最後車箱一節一節依序放下即可。"車箱置換員"的職稱起源於一座位於河畔的火車站,鐵路橫跨在河的兩岸,當船隻要通行時,橋上的鐵路不像其他地方一樣會垂直升起,而是以河中央的橋墩為中心旋轉90度,此時船隻

2013-08-24 00:11:03 2355

原创 UVA 152 Tree's a Crowd 一堆树 检索水题+暴力

题意:给你一组三维空间中的点,每个点到其它点都有个距离,其中有个最小距离,如果这个最小距离小于10,就将对应的距离的点个数加1,最后输出距离为0,1,2...8,9的点的个数。(from 百度)老实说,上面这题意也讲的不明不白,其实这题非常水,就是对每个点进行判断,找出和其他点最短的距离,在下标为该距离的数组上+1,最后输出数组下标0-9的数。trick:其实最小距离大于9的就不用存放了,

2013-08-24 00:05:03 3272

原创 UVA 10420 List of Conquests 战利品列表 简单检索+set

又是一题模拟水题。题目按“国家+战利品名字”给出一系列字符串,只要处理一下,每次读取后遍历一遍看看这个国家之前有没有出现过,有的话就把战利品名字放在该国家的set里面,如果没有就创建一个新的国家再放。代码:#include #include #include #include using namespace std;const int maxn = 2013;int n,

2013-08-23 23:55:57 1369

原创 UVA 340 Master-Mind Hints 猜数字提示的游戏 简单模拟

题意:以前曾经玩过的一个游戏,就是猜数字,原来的游戏规则是这样的:請寫一個猜數字遊戲,電腦會產生一個四位數且每個數字都不重複的數字讓使用者去猜,使用者猜測一組數字後,電腦會顯示 ?A?B 的訊息,A 代表正確的數字數目,B 代表數字正確但位置不對的數字數目。这边有个在线玩的网站:请戳这里,可能玩过了就会有点感觉了。题目有点不同,它给出的密码是多位的,然后给出一系列的猜测,让

2013-08-23 23:47:28 3016

原创 UVa 820 - Bandwidth 全排列+判断

题意:给出字母的连接情况,带宽是字母排列时相连的字母间距的最大值,要求找出一个排列使带宽最小。结点不会大于8,于是也用next_permutation进行排列后判断,其实这个排列也可以剪枝减掉一半的,我倒是没处理,不过时间较长。代码:#include #include #include #include using namespace std;const int maxn =

2013-08-05 01:41:17 1657

原创 UVa 208 - Firetruck 回溯+剪枝 数据

题意:构造出一张图,给出一个点,字典序输出所有从1到该点的路径。裸搜会超时的题目,其实题目的数据特地设计得让图稠密但起点和终点却不相连,所以直接搜索过去会超时。只要判断下起点和终点能不能相连就行了,可以用并查集也可以用floyd算法,这样就能过了。但是这个方法不是很完美的,如果两点之间只有一条线相连,而图又是稠密图,这样也很容易超时,数据强电就会挂掉。可以把算法改进一下:是先从终点

2013-08-05 01:27:32 3594 1

原创 UVA 193 Graph Coloring 图染色 DFS 数据

题意:图上的点染色,给出的边的两个点不能都染成黑色,问最多可以染多少黑色。很水的一题,用dfs回溯即可。先判断和当前点相连的点是否染成黑色,看这一点是否能染黑色,能染色就分染成黑色和白色两种情况递归,如果不能就单递归白色。代码:#include #include const int maxn = 110;int cas, v, e, M;bool g[maxn][maxn];

2013-08-05 01:13:03 3332

原创 UVa 10012 - How Big Is It? 堆球问题 全排列+坐标模拟 数据

题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短。由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了。全排列用next_permutation函数,计算长度时模拟着摆放就行了。摆放时折腾了不久,一开始一个一个把圆放到最左端,然后和前面摆好的圆比较检查是否会出现两个圆重叠,是的话就把当前圆向右移动到相切的位置。然后判断

2013-08-05 00:19:50 2794

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除