自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 51nod 1184 第N个质数(二分+大区间求素数模板)

第1个质数是2,第3个质数是5,给出一个数N,求第N个质数。Input输入1个数N(1 Output输出第N个质数。思路:二分套求素数个数模板。代码:#include #include #include #include #include #include #include #include using namespace std;ty

2017-05-31 23:37:08 1085

转载 素数判断 Miller_Rabin算法-hoj1356和51nod1186质数检测V2

源博客这么神奇的代码就能过51nod1186.。。[java] view plain copyimport java.util.Scanner;  import java.math.*;    public class Main {      public static void main(String[] args) {  

2017-05-31 23:16:11 854

原创 1489: L先生与质数V4(二分+大区间求素数模板)

题意L先生想求出第n个质数(素数)是多少,你能帮助他吗?数据T 输入1234101000输出Case 1: 2Case 2: 3Case 3: 5Case 4: 7Case 5: 29Case 6: 541HDU5901是个求1-1e11内素数

2017-05-31 21:07:50 606

原创 CodeChef Protecting The Poison(贪心)

题意蛇之王国是一个 N × N 的网格,他们最宝贵的藏品就是一个巨大的毒药库,存储在王国中央K × K 的区域中。保证 N 和 K 都是奇数。假设网格中 (1, 1) 为左上角,(N, N) 为右下角,那么中央的 K × K 区域的左上角格子为 ((N - K)/2 + 1,(N - K)/2 + 1)。但有贼想要盗走这些毒药。他们没法进入王国 N × N 的领地中

2017-05-31 20:19:35 347

原创 SPOJ:EXPOR - OR(数学)

点击打开题目 题意给出n个数A1, A2...,AN, 任意选择两个数i,j(1 以既约分数的形式输出。数据1 输入220 031 2 3输出0/13/1思路可选择的总方案数为n*(n-1)/2,若我们能算出所有方案的答案总和,约分后即为答案。暴力枚举是n

2017-05-30 16:37:55 466

原创 Codechef Consecutive Snakes(三分)

点击打开链接 题意在年度阅兵中,所有的士兵蛇都在阅兵场集合了,但这些蛇的站位不对。整场阅兵必须能从主席台看清楚,所有蛇都应该站成一排。但这些士兵非常懒惰,你必须指挥士兵重新排队,使得所有人的移动距离之和最短。形式化地,整支阅兵队伍可以视作一条数轴。共有N条蛇,每条蛇是一根长度为L的线段。第i条蛇初始时占据了[Si,Si + L]的区间,蛇与蛇之间可以重合。能从主席台看到

2017-05-30 15:27:10 427

原创 Codechef A temple of Snakes(思维)

点击打开链接 题意你想要为众蛇建造一座神殿。神殿将建在群山之中,可以将其视作n个块,其中第i个的高度为hi。神殿会建造在连续若干个块上,要求这些块的高度从1开始逐渐增加到某个高度,然后再逐渐减小到1,即,高度是形如1,2,3, ... ,x−1,x,x−1,x−2,...,1的序列。除了要建造神殿的块之外,其他块的高度都应该是0,以便人们从左右两侧看到神殿。为了达成这一

2017-05-30 15:21:20 527

原创 CodeForces 652D Nested Segments(树状数组 离散化)

题意:给你N条线段,保证线段终点没有重复,求每条线段他包含多少条线段。思路:将线段按左端点排序,那么问题就变成了求这条线段之后的右端点比当前右端点小的线段有几条。这样就可以拿树状数组来做,先把每条边的右端点+1,每处理一个边,就把该边的右端点-1,那么树状数组中维护的就是该边之后的。query(r-1)就是查询当前边之后的边中右端点比当前右端点小的边数量。因为坐标比较大,所以需

2017-05-30 01:28:18 513

原创 CodeForces 652C Foe Pairs(思维)

题意:给你1-n的一个排列和m对关系,问有多少区间不包含任意一个关系。思路:用一个数组表示每个数字可以向右延生的最大长度,也就是右边哪些点可以和这个数字形成一个区间。注意:在给定关系,更新完数组之后,要从后往前再更新一次。左端点小的能到的最远位置不能超过左端点比他大的最远点。比如一个数组,1 2 3 4 有一对2 3关系,那么第一遍更新后的最远位置是 4 2 4 4, 但1

2017-05-30 01:18:15 692

原创 第八届蓝桥杯决赛 发现环(无向图找环 tarjan)

标题:发现环小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑

2017-05-29 15:12:10 5935

原创 蓝桥杯 历届试题 网络寻路(暴力 dfs)

题意:X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中间节点必须不同。思路:枚举每个点,对每个点dfs找能搜到长度为4的就ans++代码:#include#include#

2017-05-23 23:52:05 903

原创 蓝桥杯 历届试题 危险系数(暴力 bfs)

题意:我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。本题的任务是:已知网络结构,求两站点之间的危险系数。思路:枚举所有点,判断去掉该点后x,y之间的连通性是否发生变化

2017-05-23 22:43:12 575

原创 HDU 5701 中位数计数 (思维 暴力)

题意:中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数。 现在有nn个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。大神思路:满足条件的区间必是含奇数个数的区间,对于每个数,先往右扫一遍,求得其右边比其大的和比其小的数的个数的差x,然后再往左扫一遍,求其左边比起小的数和比起大的数的差,若一个数

2017-05-23 22:21:14 438

原创 codevs 1315 摆花 (DP)

题意:小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。思路:dp[i][j] 表示用前i种花摆j天的方案数,状态转移方程:dp[

2017-05-18 15:52:18 556

原创 codevs 1427 特种部队 (双路DP)

题意:一排按钮,从左边的第一个按钮开始向右按动,中间可以跳过某些按钮,按动到最右边的按钮后,反向向左按动。最终,每个按钮都要按且仅按一次。每两个相邻按钮上数字之差的总和的最小值,便是解开这把锁的密码。 思路:f[i][j]表示第一路扩展到i,第二路扩展到j的最优值.对于max(i,j)后的一点k扩展 (1~max(i,j)可以看做是被两路分成的两段不连续序列)则:f[i]

2017-05-18 14:11:32 720

原创 qduoj 80 树结构重逢(树形DP)

题意:给定一颗包含n个节点的无根树,并且把节点从1-n编号。现在让你求对于每个点,求出所有点到这个点的距离的和(距离当然是最短距离了..)。思路:跟HDU3899一毛一样的思路,注意sum要开long long。代码:#include#include#include#includeusing namespace std;ty

2017-05-16 13:43:35 634

原创 HDU 3899 JLUCPC (树形DP)

题意:有n个点,每个点有相应的人数,n-1条带权边,从a点的所有人走到b点的花费是a点的人数*边权值,问所有人在哪个点集合能够使花费最小求最小花费。思路:先dfs求出以1为根节点使每个点后代到这个点集合的花费sum以及这个点及其后代共有几个人cnt然后枚举每个点i作为集合点(根节点)时他的花费就是sum[i]+他的父节点减去从i来的人的花费+父节点总人数减去从i来的人数*边权

2017-05-16 13:40:55 519

原创 qduoj 102 一道非常简单的数学题(构造)

题意:给你三角形的边长a, b, c和一个L, L可以用来加长边,问加L后能形成的最大面积为多少。思路:根据海伦公式,可以看出,要使面积最大,就要让三条边竟可能相等,所以构造让他们差值最小即可。代码:#include#include#include#include#includeusing namespace std;typedef long long ll

2017-05-15 19:45:58 678

原创 HDU 4828 Grids(卡特兰数)

题意:一个2行N列的长方形格子。把1到2N这些数依次放进去,求每行每列都递增的方案数(对1e9+7取模)。(n 思路:1到2N一个个放,有两种情况,放第一行或者放第二行,可以发现要满足每行每列都递增的要求是放的过程中第一行的数大于等于第二行的数。这很类似于台阶问题:在一个n*n的格子中,我们从左下角出发,前往右上角,每一步,只能水平向右走一格,或者垂直向上走一格,并且不能越过对角线

2017-05-15 18:53:23 565

原创 HDU 5894 hannnnah_j’s Biological Test(组合数学 逆元)

题意:现在 m个考生人需要坐在有n个座位的圆桌上。你需要安排位置,使得任意两个考生之间相距至少k个位置。桌子有编号,考生a和b交换位置视作一种方案,问有多少方案,mod 1e9+7。(0 思路:定好m个人 相邻人之间k个座位 剩下就剩n-(m+1)*k个座位剩下座位去插m个不同的盒子==就等价n个相同的球放m个不同的盒子然后组合数出来了乘n的话是枚举座位,除m是

2017-05-15 16:41:53 505

原创 HDU 5901 Count primes(求1e11内素数个数模板)

板子:#include #include #include #include #include #include #include #include using namespace std;typedef long long LL;using namespace std;const int N = 5e6 + 2;bool np[N];int prime[N], pi

2017-05-14 19:20:13 802

原创 codevs 1222 信与信封问题(二分图匹配 可确定的关系)

题意:John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出。但是,第二天John的儿子Small John将这n封信都拿出了信封。不幸的是,Small John无法将拿出的信正确地装回信封中了。将Small John所提供的n封信依次编号为1,2,…,n;且n个信封也依次编号为1,2,…,n。假定Small John能提供一组信息:第i封信肯定不是装在信封j中。请编程帮助Sm

2017-05-14 18:48:03 495

原创 51nod 1050 循环数组最大子段和(思维)

题意:N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。思路:答案有两种

2017-05-14 17:58:26 341

原创 2017 华东师范大学网赛 G. 铁路修复计划(二分+最小生成树)

思路:直接二分答案,然后求一下最小生成树看看花费是否满足M。注意M读入的时候不要读成int.代码:#include#include#include#includeusing namespace std;const int maxn = 1e5+5;struct node{ int u, v, t; double s; bool operator

2017-05-14 17:38:16 405

原创 2017 华东师范大学网赛 F.丽娃河的狼人传说( 贪心)

题意:方便起见,丽娃河可以看成是从 1 到 n 的一条数轴。为了美观,路灯只能安装在整数点上,每个整数点只能安装一盏路灯。经专业勘测,有 m 个区间特别容易发生事故,所以至少要安装一定数量的路灯,请问至少还要安装多少路灯。思路:按右端点排序,然后缺的路灯尽量往后放,这题数据很弱,暴力也可以过。。。比赛的时候智障了,-1的时候没有输出Case #,wa了半天。暴力代码:#incl

2017-05-14 17:32:15 442

转载 HTML5之Canvas绘图——半圆与圆弧的不同画法

昨天写的博客中,写到了HTML5中使用Canvas画圆的方法,昨晚试了一下画一个笑脸,其实挺简单的,就是两个实心圆做眼睛,一个半圆弧做嘴,这个简单的笑脸就完成了,但是在做嘴的时候开始出现了问题:DOCTYPE html>html> head> meta charset="utf-8"> title>Canvastitle> head> style type="t

2017-05-13 23:45:34 2425

原创 51nod 1024 矩阵中不重复的元素(技巧)

题意:一个m*n的矩阵。该矩阵的第一列是a^b,(a+1)^b,.....(a + n - 1)^b第二列是a^(b+1),(a+1)^(b+1),.....(a + n - 1)^(b+1).......第m列是a^(b + m - 1),(a+1)^(b + m - 1),.....(a + n - 1)^(b + m - 1)(a^b表示a

2017-05-12 17:41:00 513

原创 codevs 1068 乌龟棋(记忆化搜索)

题意:思路:记忆化搜索或者递推记忆化搜索代码:#include#include#includeusing namespace std;const int maxn = 55;int dp[maxn][maxn][maxn][maxn];int n, m, a[505];int cnt1, cnt2, cnt3, cnt4;i

2017-05-12 17:36:50 453

原创 1010 只包含因子2 3 5的数(丑数 二分)

题意:K的因子中只包含2 3 5。满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15。所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数。例如:n = 13,S中 >= 13的最小的数是15,所以输出15。思路:筛选丑数可以用紫书上的那个优先队列方法,预处理出1e18的丑数,然后二分查找大于等于N的第一个丑数即可。

2017-05-10 23:53:42 492

原创 51nod 1138 连续整数的和(数学)

题意:给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。如果不能写为若干个连续整数的和,则输出No Solution。(N思路:我们知道等差数列的和为首项加末项再乘以项数除以2,公差为1的可以假如首项是a,则可以写成(a+a+n-1)*n/2--->(2a+n

2017-05-10 23:25:40 651

原创 51nod 1163 最高的奖励(贪心+堆)

题意:有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。思路:建立一个以任务的奖金为权值的小根堆,初始堆空,用len记录堆的规模(堆中元素个数)。 对任务按截止时间 t[i] 从小到大排序,按序枚举每个

2017-05-10 22:57:18 544

原创 CodeForces 707C Pythagorean Triples(数学 构造)

题意:给出直角三角形一边,求另两边,如果存在输出任意一组即可。点击打开链接【分析】对于直角三角形△ABC,如图:我们知道的是因为题目说如果题目存在多种解,输出任何一个就可以了,所以我们不妨假设输入的n是一条直角边的长度,那么根据平方差公式可得那么,这个时候,我们要求解的就是a,b于是乎,我们分类讨论即可

2017-05-10 21:25:22 423

转载 Java在ACM中的使用

这里指的Java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目。[java] view plain copy1. 输入:    格式为:Scanner cin = new Scanner (new BufferedInputStream(System.in));

2017-05-05 16:55:44 489

原创 POJ 3686 The Windy's (二分图最小权匹配 拆点 构图)

题意:有n个订单m个车间,每个车间均可以单独完成任何一个订单。每个车间完成不同订单的时间是不同的。不会出现两个车间完成同一个订单的情况。给出每个订单在某个车间完成所用的时间。问订单完成的平均时间是多少。思路:1、这个题在建图上有一些需要思考很长时间的地方。因为每个订单所消耗的时间是车间完成订单的时间加上订单等待的时间。我们设在车间A需要完成k个订

2017-05-04 16:11:45 396

原创 HDU 1533 Going Home (二分图最小权匹配 KM模板)

题意:n*m的方格中有p个房子和p个人,人走一步花费1元,要求每个人都要找到一个房子,且每个房子里只能有一个人,问p个人都找到各自的房子,最小的花费是多少。思路:以每个人到所有房子的曼哈顿距离的相反数为权值建边,套下KM就是最小权匹配。#include#include#include#include#includeusing namespace std;cons

2017-05-04 15:36:16 434

原创 SDUT 2880 Devour Magic(线段树lazy和set标记模板)

题意:给你一个1~n的区间,每过一个单位时间区间值加一现在有一个操作 t l r 表示在t时间把 l到r这个区间的的值累加到ans,然后把这段区间清零思路:以前没做过把一段区间置为某个数的题,涨姿势了,可以和lazy标记类似做一个set标记。#include#include#include#includeusing namespace std;typede

2017-05-04 14:50:42 594 2

转载 第一类,第二类Stirling数,Bell数

一.第二类Stirling数        定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数。        证明:元素在拿些盒子并不重要,唯一重要的是各个盒子里装的是什么,而不管哪个盒子装了什么。        递推公式有:S(p,p)=1 (p>=0)         S(p,0)=0  (p>=1)    

2017-05-04 14:24:17 681

原创 HDU 1556 Color the ball(线段树区间更新区间查询模板)

Problem DescriptionN个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a  Input每个测试实例第一行为一个整数N,(N 当N = 0,输入结束。 Output每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。 Sample Input31 12

2017-05-04 13:47:51 466

原创 POJ 3579 Median(二分)

题意:给出n(3思路:二分答案,再二分检验,注意分辨下是该用upper_bound还是lower_bound. 答案应该是要找最小的满足小于等于他的数>=M个(包括自己)代码:#include#include#include#includeusing namespace std;const int maxn = 1e5+5;int a[maxn], n, M

2017-05-03 23:57:06 419

原创 POJ 3281 Dining (最大流)

题意:有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料。现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料。(1 思路:巧在建图见白书:代码:#include#include#include#include#include#includeusing

2017-05-02 17:55:48 358

空空如也

空空如也

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

TA关注的人

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