自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE_PIECE的专栏

Good good study

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

原创 JVAVBigInteger类的使用

这里列举一下JAVABigInteger类中的加减乘除以及取模的使用,如果用到其他函数,可以查询JAVA函数库:import java.math.*;import java.text.DecimalFormat;import java.util.Scanner;public class bignum { public static void main(String args[]){

2016-03-26 12:07:51 513

原创 UVA714给出n个数分成m个部分,使和最大的最小

这题,小白书上有讲,所以当时也没多想直接二分,分完之后,发现有问题,他说前面的尽量小,这里就要贪心,从后面贪心,只要和值不大于二分的值就一直二分,然后发现还是不对,看了别人的,忽略了一个问题,二分的时候x的初始值不能是零,因为我写的判断二分的函数比较特殊,所以如果判断的值小于全部的数也能过,所以,这里x的初值注意取全部数的最大值。#include#include#include

2016-03-24 17:57:19 1932

原创 UVA10954哈夫曼树与优先队列

这个题就是一个最小堆,也就是常说的哈夫曼树,可以直接使用STL优先队列,先给一个哈夫曼树的代码,建树,取堆值,插入值。哈夫曼树:#include#include#include#include#include#include#include#include#include#include#include#include#include#define LL lo

2016-03-21 23:49:17 493

原创 UVA10714线段上的蚂蚁

这个题最小的时间很容易就想明白了,就是最中间的值,中间值左边的全部向左,右边的全部像右。至于这个最大值,怕自己的想法有漏洞,想了很久,结果最后经过推导,就是建设蚂蚁全部向左或者全部向右,即取a[n]和m-a[0]中的最大值。

2016-03-21 21:10:54 302

原创 蓝桥杯 国王的烦恼 反向并查集

这题刚开始用搜索做的,超时不超时不知道,因为测试数据都没过,然后看到别人用的反向并查集,秒懂,因为起初我也是想的用并查集,但是想的是正向并查集,没有想到反向并查集。#include#include#include#include#include#include#include#include#include#include#include#include#inclu

2016-03-17 18:45:42 822

原创 UVA10020用最少的线段去覆盖给定的线段

这题是个贪心,先把每条线段按照左端点进行排序,然后贪心,怎么贪呢,每次都找到最长的线段,记录下坐标,(如果某个坐标为负值,初始的为负值,即表示下面有一段断掉了,直接return 0)更新起点值,具体的看代码:#include#include#include#include#include#include#include#include#include#include#i

2016-03-13 22:29:18 935

原创 uVA311包裹包含

这题本来是个水题,但是我前面坐的是统计前面几个盒子能装下1X1盒子的数量,估计会超LL,我没改成LL,一直WA,然后我改成一边统计,一边比较,就A了。这里贴上代码,写的略微复杂:#include#include#include#include#include#include#include#include#include#include#include#inclu

2016-03-11 22:58:57 375

原创 UVA10700求只有加法和减法的表达式的最大值和最小值

这题,不难,想了一会,1A,代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespace std;const int maxn=1e7+10;const do

2016-03-11 19:11:04 423

原创 UVA10487二分查找上界和下界

注意二分查找,查找上界的时候,返回的是等于查找的数的第一个位置,如果没有,返回前面比他大那个数的位置,如果全部数都比他大,则返回全部数的下一个坐标,注意这里。查找下界的时候,返回的是小于等于b的最后一个元素,如果全部都小于,返回第一个数前面那个数的坐标。#include#include#include#include#include#include#include#inc

2016-03-11 13:21:00 461

原创 UVA10706数字连排,求第i个位置的数字,二分

一个数组记录,是s1s2....sk的数字个数,然后二分,转化为字符串,即可求出第i个位置的数字,具体的看代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespa

2016-03-11 11:50:22 350

原创 UVA10057中位数的定义,个数

这题主要是求中位数,和中位数相等的数字的个数,和中位数等价的数字的个数。一个数列中,找一个数字,使得数列中所有数字到这个数的距离和最小,这个数就是中位数。具体看代码:#include#include#include#include#include#include#include#include#include#include#includeusing namesp

2016-03-06 15:48:36 428

原创 UVA10341二分解方程

这里没答案的情况怎么判断,我想复杂了,因为是单调函数,x的最大值和最小值带入方程同号肯定是没答案的,否则肯定就是有答案的,还有就是这里二分的时候eps的大小,我设置的eps,1e-4,1e-5,1e-6都不过,1e-7才能过,不知道为什么。#include#include#include#include#include#include#include#include#i

2016-03-06 15:01:23 376

原创 UVA270sscanf的使用

这题数据比较小,所以直接当做一个数学题就行了,主要就是输入的问题,因为输入的问题RE了好几遍,最后看到别人用的sscanf,改了就过了。#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing nam

2016-03-06 14:26:09 325

原创 UVA1013201串配对

这题没什么说的,排序之后,暴力就行了。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=500;const double eps=1e-5;string s[maxn];

2016-03-05 22:03:37 351

原创 UVA10763交换生配对问题,排序加二分,或者multimap

俩种做法:一:排序之后二分查找y值区间,进行配对。代码:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6+10;struct ss{ int a,b

2016-03-05 13:15:31 408

原创 uva10905连接n个数字,使得连成的数字最大

这题,我不知道cmp还可以这么写,所以想了一会,只是知道按照字典序排序是错的,没想出来怎么做,百度了题解,才发现原来cmp还可以以各种姿势写。看到此人的第一种做法,只能说,我还是太渣,知道错了,不知道改进。下面复制别人的题解。题意,给n个数字,将它们重新排序得到一个最大的数字,好像给出123 456 789 拼为 789456123 最大这题可以算是一个排序题,不过排序的规则有讲究

2016-03-04 21:40:43 370

原创 Codeforces Round #344 (Div. 2) C题数列的前n个数进行m次升降排序

这题,当时做的时候想了半天没思路,其实也很简单,只是刷题少,没想到而已。这题还是比较巧妙地。首先我们要发现如果r1变成多个按r降序的排列。然后第二点,也是很难想到的一点就是,每次前面那个数列和后面再次排列的数列相比,多出来几个数,而这几个数要不是大数,要不是小数,而且后面在排序的时候,前面多出来这几个数是不会变的。所以这里有个辅助数组b[maxn],存储要用的数字按从小到大

2016-03-04 20:46:10 527

原创 小白书贪心之区间选点问题

本质上是和前面那个选择尽量多的区间,使的俩俩没有公共点一样的。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6+10;const double eps=1e-5;struct node{ int

2016-03-03 22:37:04 427

原创 小白书贪心之选择不相交区间

这里贪心的原则就是选择一个区间之后留出更大的空间,给后面的去选择,所以先按照右区间b从大到小排序,这里选择的代码也比较巧妙,通过平移右区间去进行选择,排除。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1

2016-03-03 22:09:19 417

原创 小白书贪心之乘船问题

俩个坐标了l,r标记最轻的和最重的,每次r往左移动,直到i和j可以坐同一艘船,然后l++,r--;#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6+10;const double eps=1e-5;i

2016-03-03 21:28:28 355

原创 连续序列分成m段,最大值最小化,二分经典

这题比较巧妙地去猜答案,二分,重点是怎么求m段的连续和是否满足,这里用了一个贪心,不大于x,就一直把线往后移,大于的话就加一条线。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6+10;const

2016-03-03 19:58:32 2467 2

原创 UVA10085宽搜之八宫格走最远

刚开始以为直接宽搜会超时,并不会,直接宽搜,打印路径的话,开个数组记录子节点的父节点,再开一个数组记录父节点到子节点的方向,然后递归就行了。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6;int

2016-03-02 21:24:03 408

空空如也

空空如也

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

TA关注的人

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