
ACM相关
ACM算法竞赛,算法做题笔记或者算法学习
ke_yi_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
莫队算法
莫队算法是一种解决区间问题的算法,是一种很优的暴力算法。莫队算法的基本思想是,知道一个区间[l,r]的一些信息,就可以在很短的时间内求出它的扩展区间的一些信息。算法讲解挺详细的链接点击跳转到百度文库pdf文档题目描述Given a sequence of integers a1, a2, ..., an and q pairs of integers (l1, r1), (l2, ...原创 2018-07-21 10:04:44 · 963 阅读 · 0 评论 -
树状数组----poj 2352 stars
题目描述:StarsTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 53181 Accepted: 22886 DescriptionAstronomers often examine star maps where stars are represented by point...原创 2018-07-23 08:49:56 · 967 阅读 · 0 评论 -
线段树 || 树状数组解决区间更新区间查询问题----poj 3468 百练 3439 A Simple Problem with Integers
树状数组实现区间更新区间查询:要实现区间更新区间查询操作必须像这篇文章里面一样,引入一个数组a[],区间加就只要在这个数组区间左加增量,区间右后一个位置减增量。下面公式org[]表示变化之前的数据。sum(x) = org[1] +... ...+ org[x] + (a[1]) + (a[1]+a[2]) + ... ...+ (a[1]+... ...a[x]) =...原创 2018-07-25 11:52:15 · 710 阅读 · 0 评论 -
树状数组解决区间更新单点查询----hdu 1556 Color the ball
题目详情: Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 26931 Accepted Submission(s): 13049Problem DescriptionN个气球排成一排,从...原创 2018-07-25 10:28:58 · 747 阅读 · 0 评论 -
线段树拓展----HDU 6315 Naive Operations
Naive OperationsTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 2623 Accepted Submission(s): 1143Problem DescriptionIn a galaxy far, fa...原创 2018-07-31 09:54:21 · 558 阅读 · 0 评论 -
线段树----hdoj 1754 I here it
题目表述:I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 96882 Accepted Submission(s): 36592Problem Description很多学校流行一种比较的习惯。老师...原创 2018-07-23 09:22:41 · 842 阅读 · 0 评论 -
线段树+树状数组----hdoj 1166 敌兵布阵
题目描述:敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 117851 Accepted Submission(s): 49318Problem DescriptionC国的死对头A国这段时间正在进行军事演习...原创 2018-07-23 09:34:47 · 825 阅读 · 0 评论 -
csu----G(1809): Parenthesis
G(1809): Parenthesis题目Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 25 Solved: 7 DescriptionBobo has a balanced parenthesis sequence P=p1 p2…pn of...原创 2018-08-16 20:29:29 · 604 阅读 · 0 评论 -
poj2823----sliding window
单调队列_优先队列入门题Sliding WindowTime Limit: 12000MS Memory Limit: 65536K Total Submissions: 71411 Accepted: 20312 Case Time Limit: 5000MS DescriptionAn array of size n ≤ 106 is g...原创 2018-08-20 13:50:23 · 571 阅读 · 0 评论 -
广度优先搜索----poj 2251 Dungeon Master
题目描述:Dungeon MasterTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 46622 Accepted: 17566 DescriptionYou are trapped in a 3D dungeon and need to find the quickest w...原创 2018-07-15 20:01:18 · 982 阅读 · 0 评论 -
枚举+深搜----poj 3279 Fliptile
题目描述:FliptileTime Limit: 2000MS Memory Limit: 65536K Total Submissions: 15598 Accepted: 5712 DescriptionFarmer John knows that an intellectually satisfied cow is a happy cow ...原创 2018-07-18 21:36:13 · 1015 阅读 · 0 评论 -
ZOJ Problem Set - 4020
ZOJ Problem Set - 4020#include<iostream>#include<cstdio>#include<vector>#include<queue>using namespace std;const int maxn=1e5+5;vector<int> mg[maxn];vector<i...原创 2018-08-18 14:44:51 · 585 阅读 · 0 评论 -
深度优先搜索----poj 1321棋盘问题
题目描述棋盘问题Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63237 Accepted: 30234 Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形...原创 2018-07-15 15:19:39 · 1049 阅读 · 0 评论 -
bfs+dfs分析----poj 3278 Catch That Cow
题目详情Catch That CowTime Limit: 2000MS Memory Limit: 65536K Total Submissions: 115430 Accepted: 36066 DescriptionFarmer John has been informed of the location of a fugitive cow...原创 2018-07-16 16:48:53 · 1448 阅读 · 2 评论 -
蓝桥杯-审美课(二进制,加打表时间优化)
此题使用二进制取反简化判断,使用打表方法达到时间复杂度的优化,然后计算所有反下标标记的元素值的和就得到了答案的两倍。算法训练 审美课 时间限制:1.0s 内存限制:256.0MB问题描述 《审美的历程》课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手。老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都像...原创 2019-03-20 19:26:31 · 419 阅读 · 0 评论 -
csu----A(1803): 2016
A(1803): 2016题目Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 15 Solved: 12 Description 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:1. 1≤a≤n,1≤b≤m;2. a×b ...原创 2018-08-16 20:21:18 · 653 阅读 · 0 评论 -
贪心算法----Fence Repair(POJ 3253)
Fence RepairTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 60866 Accepted: 20067DescriptionFarmer John wants to repair a small length of the fence around the pasture. He m...原创 2018-07-31 11:24:00 · 618 阅读 · 0 评论 -
贪心算法----nyoj 14 会场安排
题目详情:会场安排问题时间限制:3000 ms | 内存限制:65535 KB描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m<100)表示共有m...原创 2018-07-26 12:03:17 · 771 阅读 · 0 评论 -
Saruman`s Army(POJ 3069)
Saruman's ArmyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13974 Accepted: 7011DescriptionSaruman the White must lead his army along a straight path from Isengard to He...原创 2018-07-30 22:14:38 · 531 阅读 · 0 评论 -
贪心算法---codeforce680D Bear and Tower of Cubes
D. Bear and Tower of Cubestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLimak is a little polar bear. He plays by building towers from bloc...原创 2018-07-31 21:35:48 · 628 阅读 · 0 评论 -
字典序最小问题 Best Cow Line (POJ 3617)
Best Cow LineTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 32184 Accepted: 8533DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year...原创 2018-07-30 21:31:53 · 644 阅读 · 0 评论 -
csu----J(1812): 三角形和矩形
多边形交并补模板运用J(1812): 三角形和矩形题目Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 7 Solved: 3 SpecialJudgeDescriptionBobo 有一个三角形和一个矩形,他想求他们交的面积。具体地,三角形和矩...原创 2018-08-16 20:39:20 · 717 阅读 · 0 评论 -
多边形面积
#include<iostream>#include<cstdlib>#include<algorithm>#include<cmath>#define eps 1e-8using namespace std;struct node{ double x,y;}z;bool cmp_node(node a,node b)...原创 2018-08-16 17:25:39 · 574 阅读 · 0 评论 -
动态规划----最长公共子序列
给定连个字符串s1s2... ...sn和t1t2... ...tn。求出这两个字符串最长的公共子序列的长度。字符串s1s2... ...sn的子序列可以表示为si1si2... ...sim(i1<i2<... ...<sim)的序列。(1<=n,m<=1000)dp[i][j]表示s1... ... si和t1... ...tj对应的LCS的长度。当s[i+...原创 2018-08-01 16:47:00 · 525 阅读 · 0 评论 -
动态规划----最长上升子序列
有一个长为n的数列a0,a1... ...an-1。请求出这个序列中最长的上升子序列的长度。上升子序列指的是对于任意的i<j都满足ai<aj的子序列。限制条件{ n[1,1000]、n[0,1000000] }dp[i]表示以ai为末尾的最长上升子序列的长度dp[i]=max( 1,max{dp[j]+1 | j<i且aj<ai })#include<cs...原创 2018-08-02 17:16:10 · 783 阅读 · 0 评论 -
动态规划----背包问题
0-1背包之一n个重量价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过W的物品,求价值总和的最大值。限制条件{n(1,100)、wi,vi(1,100)、W(1,1000)}枚举+dfs:#include<cstdio>#include<algorithm>using namespace std;const int MAXN=100;int ...原创 2018-08-02 16:23:26 · 646 阅读 · 0 评论 -
动态规划(dp)----hdu1024 Max Sum Plus Plus
题目描述:Max Sum Plus PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 36429 Accepted Submission(s): 12963Problem DescriptionNow I th...原创 2018-07-27 11:25:49 · 604 阅读 · 0 评论 -
最大连续和
用一般暴力方法:best = a[i]//初始化最大值for(int i = 1;i <= n;i++)for(int j = i;j <= n;j++){int sum=0; //检查连续子序列a[i] + ... ... + a[j]for(int k = i;k <= j;k++)sum += a[k]; ...原创 2018-08-13 15:33:50 · 576 阅读 · 0 评论 -
逆序对
输入一个序列求序列中的逆序对归并排序代码void merge_sort(int *a,int x,int y,int *T){if(y-x<=1)return ;int m=x+(y-x)/2;int p=x,q=m,i=x;merge_sort(a,x,m,T);merge_sort(a,m,y,T);while(p<m||q<y){if(q>...原创 2018-08-13 19:28:53 · 759 阅读 · 0 评论 -
快速选择问题
输入n个整数和一个正整数k(1<=k<=n),输出这k[n]。快速排序将序列分成两部分,大于tmp小于tmp分别对两部分进行排序不要合并void QuickSort(RecType R[],int s,int t,int k){ int i=s,j=t; RecType tmp; if(s<t) { tmp=...原创 2018-08-13 20:29:52 · 1405 阅读 · 0 评论 -
基数排序
基数排序思想:先将序列按照个位装入十个组,然后从0到9将各组内数拿出来,按照十位装入是个组,最后以同样的方式按照百位装入,完成操作之后就已经排好序了。排序图解:排序代码:代码设计:首先将判断所有数字都是多少位,必须将高位为空补零,存为字符串,或者直接通过整数位数求余取整获得数据。然后使用循环从个位到最高位遍历所有数,分组。设置分组,每一个分组必须是一个动态数组。每...原创 2019-05-01 22:16:55 · 214 阅读 · 0 评论 -
插入排序
插入排序思想:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据;插入排序图解:插入排序代码://迭代版本public class Interation_InsertSort { public static<T extends Comparable<? super T>> void I_insertion...原创 2019-04-25 10:57:40 · 260 阅读 · 0 评论 -
排序算法比较
排序算法的时间效率: 平均情况 最好情况 最坏情况 基数排序 归并排序 快速排序 希尔排序 插入排序 选择排序 O(n) O(n*logn) O(n*logn) O(n^1.5) O(n^2) O(n^2) O(n) O(n*log...原创 2019-05-03 10:24:32 · 266 阅读 · 0 评论 -
选择排序
选择排序思想:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。选择排序图解:选择排序代码(java):package sort;public class SelectSort { public static<T extends Comparable<? ...原创 2019-04-23 21:03:42 · 178 阅读 · 0 评论 -
快速排序
与前面归并排序不同的另一种分治策略----快速排序与归并排序不同的是:快排不要求分成相等的两半、归并主要是合并,快排主要是划分、归并有一个辅助数组,快排不要。java类库中的快排:java.until中的Arrays使用快排对基本类型的数组按升序排序。方法:public static void sort(type[] a);public static void sort(type[]...原创 2019-05-01 15:46:43 · 415 阅读 · 0 评论 -
归并排序
归并排序思想:将一个序列分成两半然后对两半分别排序,再将他们归并为一个有序序列。归并排序图解:归并排序的代码:(迭代版本代码由于写的急,没来的急优化,所以可读性不是很好)//递归版本归并排序public class Recursion_MergeSort { public static <T extends Comparable<? super T>>...原创 2019-04-30 21:56:28 · 359 阅读 · 0 评论 -
希尔排序
希尔排序思想:插入排序的一种变体。由于插入排序对于特别乱的序列排序会很糟。而它就是先将序列变成接近有序的序列。排序步骤:举例:10、16、11、4、15、3、9、6、1、17、8、12、7(1)分组:将上面序列分为6组,按照每一组按照相隔多少取一个数,比如第一组取0号、6号、12号。如下:(2)分组排序:对每一组进行插入排序,得到数组的状态为7、1、4、8、3、9、16、11、...原创 2019-04-28 14:20:10 · 211 阅读 · 0 评论 -
二叉查找树
概念:一棵二叉树,其节点可以比较(含有Comparable对象),并按一下方式组织节点:1.节点中的数据大于节点左子树中的数据2.节点中的数据小于节点右子树中的数据主要操作:查找、插入、删除、遍历插入操作:首先寻找符合树的组织方式的父节点,然后插入其合适的位置。查找操作:为查找而设计,由于节点按照一定顺序,查找的时候比较节点大小,接着查找相应的子树。遍历操作:和一般的树的遍历操...原创 2019-05-10 17:25:52 · 257 阅读 · 0 评论 -
平衡查找树
概念:是二叉查找树的一种优化,它规定查找树一直平衡,因此查找的时间会更加优化。基本操作:查找、插入、删除、遍历。其操作基本和查找树一样。但是有一些不同。因为需要保持查找树的平衡,所以每一次对元素的的添加和删除都需要对查找树进行维护,使其处于平衡状态。(平衡:每一个叶子节点的深度相差不能超过1)。维护的方式有单旋转和双旋转,单旋转分为左、右旋转,双旋转分为左右、右左旋转。旋转的目的是为了保持...原创 2019-05-11 12:06:45 · 355 阅读 · 0 评论 -
牛客2018年第七次acm暑期培训----A-Minimum Cost Perfect Matching
链接:https://www.nowcoder.com/acm/contest/145/A来源:牛客网Minimum Cost Perfect Matching时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: %lld题目描述You have a complete...原创 2018-08-10 08:54:52 · 551 阅读 · 0 评论