自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

万事屋

一些解题思路和工作中的积累

  • 博客(26)
  • 收藏
  • 关注

原创 hdu 4946 Area of Mushroom 共线凸包 附赠数据,点击就送

题意是有n个学霸,, 每个人用x,y, v来表示. x,y,是坐标,v是他的速度.如果某学霸能到某个地方比任何人都快(同时到达不算), 那么 那块位子就被他承包了.如果某学霸可以承包无限多的位子对应地输出1, 不能就输出0;思路, 速度快的,永远能追上速度小的, 所以承包无限大的鱼塘的学霸,肯定是速度最快的学霸.那么就把速度最快的学霸都挑出来. 然后跑凸包,凸包上的点,就是可以无限承包地方的学霸.

2014-08-15 20:10:11 877 1

原创 共线凸包 极坐标排序和水平排序的抉择

凸包的原理,这里就不多介绍了.前几天做多校的时候遇到一道共线的凸包问题. 由于自己图样, 直接用极坐标排序的模板上去做,wa了一天. 然后就到处找资料, 看别人代码,看书. 终于知道了,凸包的 极坐标排序 无法解决共线问题.

2014-08-15 16:26:03 2077 2

原创 归并排序求逆序数

并归排序的算法:http://blog.csdn.net/u013532224/article/details/38538197#include //很稳定的 O(log(n)*n)int a[500]={9,4,3,7,3,8,2,4,8};int tem[500];int sum;void mergearr(int fir,int mid,int las)// 分治法

2014-08-13 16:21:33 624

原创 归并排序 分治+递归

0 1 2 3 4 5 6 7 8 //下标{ 9 , 4 , 3 , 7 , 3 , 8 , 2 , 4 , 8 }//通过mergesort函数递归 来切 开始的时候fir=0, las=8, mid=4 所以下标0-4,分为前组 5-8分为后组{ 9 , 4 , 3 , 7 , 3 }{ 8 , 2 , 4 , 8 }{ 9 , 4 , 3 }{

2014-08-13 16:00:49 748

原创 hdu 4292 Food 最大流+拆点

F种食物,N个人,D种饮料先输入一排F个数字的是每种食物的量;再输入D个数字是每种饮料的量;然后N行 是每个人可以接受的食物是哪几种,第一个Y代表可以接受第一种食物再N行,是每个人可以接受的饮料是哪几种,每个人都只用给他一个食物或者饮料做法是, 设一个超级源点beg, beg 连接到 各种食物, 权值是该食物的量.然后把每个人拆开, 拆成 点头 和点尾,因为只吃一个,所以权值是1;然后把这各种食物,根据每个人的爱好连接 到 人的点头,因为只吃一个,所以权值是1在把每个人的点尾根据个人爱好

2014-08-13 10:51:37 758

原创 hdu 4941 Magical Forest

题意是n*m大的方格, 输入k组数据 x,y,c 代表x,y这个点上的值为c,没提到的值为0;然后输入t 组数据 q,a,b ; 如果q是1,交换ab两行,如果q是2,交换ab两列;如果q是3,输出x=a,y=b上的值;采用map来做,比较快. 其实的c值记录的坐标在zuobiao这个map中. 行列交换互不影响, 所以分开记录在hang 和lie 两个map中hang[ a ] 为例, a是现在要查的行; hang[a] 中记录的值是 当前第a行上的数是 原来是第hang[a] 行;如果

2014-08-12 20:41:32 757

原创 hdu 4289 Control 网络流,最小割,拆点

题意是N个点,每个点都有各自的cost, 然后M 无向条边要求割去S点到D路线中的点,使之无法从S到D ,而且要求消耗的cost和最小. 这是一道网络流的题. 算的是最小割. 根据最大流最小割定理. 可以直接算最大流;但是这题的的流量限制是在点上的.所以要我们来拆点.我这题是把i 点的 点首和点尾 分别设为 i 和 i+n; 显然 最后会得到2*n个点

2014-08-11 20:42:24 662

原创 hdu 4932 Miaomiao's Geometry 暴力枚举

比赛的时候 在Y , 以为是两个之间取最大, 然后给取出来得最大取个最小,后来发现 70 3 6 7 12 14 18这组案例 应该跑出2.5 的 而那样Y 出不来小数给跪了.后来在hack 的时候 看到很多二分的选手居然没被X; 这题二分是不行的... 比如说 这组案例30 1 3 4 跑出来应该是22 符合案例 1.5比2 小但是不符合 所以答案不是线性关系的 所以不能二分来做.后来看题解看到有人暴力. O(n*n); 这就要首先判断出,答案必须是某段区间或

2014-08-11 15:10:17 630

原创 hdu 4291 A Short problem 矩阵快速幂,找循环节

这题和以往的矩阵快速幂的题目不同在于g(g(g(n))) mod 109 + 7; 这个取模 是把最外层的g( ) 函数的 因变量改了. g()函数是比斐波那契函数的增长速度还要快的. 所以最外层g( ) 的自变量 g(g(n)) 是非常大的. 所以考虑找循环节.最外层的g()的因变量是要%1000000007的,而且g(0)=0,g(1)=1,所以可以通过下面的程序找到 g(g(n))的循环节是222222224.所以第二层的g()的因变量是要%222222224;而且它同样有g(0)=0,g(

2014-08-09 19:24:03 782

原创 hdu 4925 Apple Tree 间隔着种树施肥,

应该算是构造题吧. 如果坐标(x+y)&1 ==1 的点施肥, 也就是没有相邻的树,也没相邻的施肥点,都是间隔开的. 还有就是要注意下输入 n=1 m=1 时, 要输出1 才行.

2014-08-07 21:24:01 1135

原创 hdu 4927 Series 1 大数,排列组合

大数,排列组合的题有递推关系1 5 7 24 2 -5-2 -7-5a[ i ][ j ]=a[i-1][j+1]-a[i-1][ j ]这样就可以推出最后的答案但是如果每次推,都会增加值得话如-1 1 -1 12 -2 2-4 4-8如果都是这种间隔 一正一负 那就是指数级地上升了, 所以必须用大数.而且大数计算量比较大,, 所以就不能递推来算了.所以要找关系. 最后 我们队友找到的关系是 C(0,n-1)*a[

2014-08-07 19:14:44 845

原创 hdu 4930 Fighting the Landlords 出一手能打完或者打出来后对手没得接 就赢

看清楚题意, 只要出一手能打完或者打出来的对手没得接就算自己赢,输出yes;我先转换牌成数字我把 牌的张数 分别存在my[ ] 和 yo [ ] 代表自己的牌和对手的牌.首先要判断 一手牌打完, 王炸 和炸弹 这几个情况.mybig [i] 和 yobig[i] 分别代表 第i 种牌型 自己和对手最大的是什么牌. 0 表示没这种牌型.一次比较,只要有一张牌型比对手大 或者一样大,就是赢了.

2014-08-07 19:08:23 815

原创 hdu 2095 find your present (2) 找到只出现一次的数字

find your present (2)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/1024 K (Java/Others)Total Submission(s): 15349    Accepted Submission(s): 5821Problem DescriptionIn t

2014-08-07 11:47:43 1422

原创 hdu 2074 叠筐 好有意思的画图题

中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。好有意思的画图题.

2014-08-06 18:10:21 1332

原创 hdu 2072 单词数 字符串处理

单词数Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28734    Accepted Submission(s): 6898Problem Descriptionlily的好朋友xiaoou333最近很空

2014-08-06 15:54:39 835

原创 hdu 4901 The Romantic Hero 计数dp,位计算

题意是 给n个数.前面取任意个数 组成集合S 取在所有S中元素后面的任意个元素 T ,S 和T 不为空集;计算能让S集合所有元素的异或(^)后得到的数等于 T集合所有元素与(&)后得到的数. 这样取两个集合,不同的取法有多少个.data[ i ][ j ]表示在i号元素以前,包括i, 能通过^运算得到j的方法数data2[ i ][ j ]表示在i号元素以后,包括i,能通过&运算得到j的方法数data3[ i ][ j ] 表示在i号元素以后,包括i,能通过&运算得到j,且一定取了i

2014-08-04 11:02:46 849

原创 hdu 4908 Task schedule 需要预处理

有一台机器,并且给你这台机器的工作表,工作表上有n个任务,机器在ti时间执行第i个任务,1秒即可完成1个任务。有m个询问,每个询问有一个数字q,表示如果在q时间有一个工作表之外的任务请求,请计算何时这个任务才能被执行。机器总是按照工作表执行,当机器空闲时立即执行工作表之外的任务请求。

2014-08-04 09:57:19 923

原创 hdu 4908 BestCoder Sequence 找M为中位数的串的数目, 需要预处理

题目意思是 再给出的全排列(1~n每个数字只出现一次)中,找到一个奇数个的子串,要求子串的中位数(大小排序后正中间的数), 为M;求这种子串有多少.首先要把M这个数左边的串预处理下, 如果 遇到大于M的数ji++,然后记录在data[当前位置的奇偶][当前记录的ji] ,如果当前位置的数小于M的数,ji--; 因为ji记录在数组里,所以ji 要价格50000 以保证不会出现负数的情况.然后再处理右边的串,ji 重新计数, ans+data[位置奇偶, 如果两个位置奇偶相同,代表这条串有奇数个元

2014-08-04 09:53:22 1052

原创 POJ 3404 Bridge over a rough river 贪心,每次算最大的两个人去对岸的最少用时

题目的意思是有一座桥,开始有n个旅行者在桥左边.问怎么才能最快全体通过这个桥.要求是,这桥每次最多过两个人,所需要的时间取决于比较慢的那个人,而且过去的时候要带上火棒来照明,火棒只有一个,所以除了最后一次过去的人,之前都要有人把火棒给拿回来给后面的人用.输入的n代表人数, ti 代表每个人过桥的用时.再人数比较多的时候 ,这里有两种可能,接下来讲解下第一种可能①A代表 速度最快的人 ti最小B代表 速度第二快的人Y代表 速度第二慢的人Z代表 速度最慢的人 ti最大如果ABYZ数值差距

2014-08-03 21:53:30 1129 1

原创 POJ 3400 Dropping the stones 深搜,然后加个小优化

题意是有n个石头,每个石头有对应的重量pi, 和对应的 价值 vi;有两条水沟,, 轮流放石头, 要求B水沟最后的总花费要最大. 每次放可以放任意哪个石头.开始是在A水沟里放, A的总重量大于 B 水沟重量+D后, 就开始放石头进B , 如果B水沟总重量大于 A水沟总重量+D,下一次又开始要放石头进A水沟

2014-08-03 18:45:13 907

原创 POJ 3399 Product k个 正负整数,找乘积最大的

题意是给你n个数字,然后挑出k个数字,乘起来. 找哪几个数字乘积最大.我是用贪心的思想. 从绝对值最大的开始找. 如果是负数,就要成对成对加到ans数组里. 当ans只能放入一个数的时候, 要判断下, 具体的看代码里的备注吧.如果 最后找不到 k数字相乘能大于等于0 的话, 就把前n个绝对值最小的数 输出就行了. 因为肯定是负数或者小于零了,所以要让product尽可能地小.

2014-08-03 18:30:08 1112

转载 强连通模板

转自/*时间复杂度为O(n+m)黑匣子:先最初调用1、init()2、把图用add 存下来,注意图点标为1-n,若是[0,n-1]则给所有点++;3、调用tarjan_init(n); 再调用suodian();4、新图就是vectorG[];  新图点标从1-tar ;5、对于原图中的每个点u,都属于

2014-08-02 22:18:19 588

原创 POJ 3114 Countries in War 强连通tarjan缩点后 跑最短路spfa

题目说 ,战时有n座城市,某些城市间可以单向传递信息. 如果, 某几个城市两两都可以相互传递信息,那代表他们是一个国家的. 输入的E代表可以连通 的城市有那几对,X->Y 耗时H.一个国家之间传递信息可以瞬间完成. 所以这是一个有向有环图. 通过tarjan 缩点. 去环后. 把每个国家,也就是每个强连通分量之间的最短距离求出.然后跑一变spfa,就可以得出两个点的最短传输时间了.如果无法传输到输出 Nao e possivel entregar a carta;

2014-08-02 22:08:56 891

原创 POJ 3112 Digital Biochemist Circuit

题目的意思是,有p个 电子元件, 跑n次; 每行是每次各个电子元件状态.所以竖着的连续的1,代表某电子元件的runs. 同一个电子元件可以有多个0间隔开的runs; 计算长度大于c 的runs个数

2014-08-02 22:03:39 696

原创 hdu 2058 The sum problem 数学题,想了好久,,

// 公式 m=(a+a+k-1)*k/2; k为长度 a为起始数字//开始的时候,是想用 起点和终点来当变量的. 后来wa了. 认真想想,是因为这两个变量 就算用了二次函数的公式推导来优化.//也都会在数据为 n=10^9 m=1 或n=10^9 m=10^9 的时候需要遍历一次.显然超时的. //无奈看了讨论, 看到别人用区间长度来做 恍然大悟粗略估计下 k就不能超过sqrt(2m)这个量级, 看下数据的强弱 显然是可以过的.

2014-08-01 20:47:48 725

原创 hdu 2057 %X 为负数时的解决方案

下面是自己感觉说得过去的理由....

2014-08-01 15:11:50 1321

空空如也

空空如也

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

TA关注的人

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