ACM算法题
有一定水平的ACM题目
aaakirito
GRIT
展开
-
2017 Multi-University Training Contest 9 solutions 1008 Numbers(hdu6168)
将b数组排序,取出最小的两项作为a1,a2a1,a2,删除a1,a2,a1+a2a1,a2,a1+a2,再取出最小项作为a3a3,再删除a3,a1+a3,a2+a3a3,a1+a3,a2+a3,再取出最小项作为a4a4,依次列推。 刚开始用vector写的超时,复杂度为O(nˆ3) #include...原创 2017-08-29 17:53:49 · 309 阅读 · 0 评论 -
UVa 11235 频繁出现的数值
刘汝佳书上看到的问题,没有看题解做了一下,直接AC了,不多说了,直接上代码总的来说RMQ查找左部最大,右部最大,和交叉部最大的三者中的最大值#include <utility>#include <cstdio>#include <map>#include <algorithm>using namespace std;map<in...原创 2018-10-04 21:56:49 · 262 阅读 · 0 评论 -
LA 3938 动态最大连续和-线段树
想了许久,最终决定写下这篇博文,这是我这周做的一道很不错的题目,线段树好神奇啊!,前一段时间复习了一下线段,找了找刘汝佳蓝书上线段树的专题做了做。这题让我卡了一天,自己先用了类似的方法,但是到询问的地方感觉怎么都写不对。后来我参考了一下网上的代码,终于搞懂刘所用到的解法了。 要做这一题,我们要先定义一个结构体struct node{pair<int,int>max_su...原创 2018-08-31 14:26:43 · 522 阅读 · 0 评论 -
线段树(点)简单题 hdu 1166 敌兵布阵
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 120002 Accepted Submission(s): 50201 Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国...原创 2018-07-31 16:31:23 · 187 阅读 · 0 评论 -
AtCoder Beginner Contest 110 D - Factorization
D - FactorizationTime limit : 2sec / Memory limit : 1024MBScore : 400 pointsProblem StatementYou are given positive integers N and M.How many sequences a of length N consisting of positive i...原创 2018-09-25 17:15:29 · 602 阅读 · 0 评论 -
Atcoder Base -2 Number
C - Base -2 NumberTime limit : 2sec / Memory limit : 1024MBScore : 300 pointsProblem StatementGiven an integer N, find the base −2 representation of N.Here, S is the base −2 representation o...原创 2018-08-13 10:40:14 · 284 阅读 · 0 评论 -
atcoder Equal Cut
Time limit : 2sec / Memory limit : 1024MBScore : 600 pointsProblem StatementSnuke has an integer sequence A of length N.He will make three cuts in A and divide it into four (non-empty) contiguous subs...原创 2018-07-02 16:21:15 · 502 阅读 · 0 评论 -
AtCoder Beginner Contest 076 D - AtCoder Express
1匀加速阶段:inc=min{vi-cur,(lim+t[i]-cur)/2,t[i]};2匀减速阶段:dec=max{0,cur+inc-lim};3匀速阶段:kep=t[i]-inc-dec。// main.cpp// D - AtCoder Express//// Created by wenhan on 2017/10/28./原创 2017-11-02 10:24:47 · 397 阅读 · 0 评论 -
Codeforces Round #462 (Div. 2) A. A Compatible Pair
A. A Compatible Pairtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputNian is a monster which lives deep in the oceans. Once a year, it shows up on t...原创 2018-02-17 22:59:26 · 214 阅读 · 0 评论 -
Codeforces Round #440 C. Maximum splitting
C. Maximum splittingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given several queries. In the原创 2017-10-19 10:59:54 · 196 阅读 · 0 评论 -
Codeforces Round #438 C. Qualification Rounds
C. Qualification Roundstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSnark and Philip are preparing the原创 2017-10-13 12:04:13 · 260 阅读 · 0 评论 -
RMQ 模版(nlogn)
#include <cstdio>#include <algorithm>using namespace std;int v[100000][64];int main() { int n; scanf("%d",&n);//存数 for(int i=1;i<=n;i++) scanf("%d",&v[i...原创 2018-09-27 13:53:01 · 133 阅读 · 0 评论 -
逆元模版
费马小定律const int mod = 1000000009;long long quickpow(long long a, long long b) { if (b < 0) return 0; long long ret = 1; a %= mod; while(b) { if (b & 1) ret = (ret * a...转载 2018-09-26 12:11:28 · 192 阅读 · 0 评论 -
线段树——刘汝佳
#include <cstdio>#include <algorithm>#define N 100000+5using namespace std;int sumv[N*4],minv[N*4],maxv[N*4],add[N*4],setv[N*4];int x,y,v;int _sum=0,_max=0,_min=0xfffffff;void main...转载 2018-08-24 18:35:36 · 444 阅读 · 0 评论 -
线段树模版
#include <cstdio>#include <algorithm>using namespace std;struct me{ int value; int flage;}my[400005];int v[100005];void m_build(int root,int left,int right){ my[root].fl...原创 2018-07-30 11:10:38 · 213 阅读 · 0 评论 -
线段点模版
#include <cstdio>#include <algorithm>using namespace std;int tree[200005];int v[100005];void m_build(int root ,int left,int right){ if(left==right) tree[root]=v[left];...原创 2018-07-29 19:53:19 · 175 阅读 · 0 评论 -
SPFA算法——最短路径
转自 http://www.cnblogs.com/scau20110726/archive/2012/11/18/2776124.html粗略讲讲SPFA算法的原理,SPFA算法是1994年西南交通大学段凡丁提出是一种求单源最短路的算法算法中需要用到的主要变量int n; //表示n个点,从1到n标号int s,t; //s为源点,t为终点转载 2017-10-28 13:39:12 · 445 阅读 · 0 评论 -
快速幂模版
非递归//// 快速幂非递归.cpp// //// Created by wenhan on 2017/8/18.////const int mmax=1e9+7;long long f(long long a,long long b)//a为底数,b为次数{ long long temp=1; while(b) { if(原创 2017-08-18 16:22:59 · 228 阅读 · 0 评论 -
ACM训练必备知识点
图论最短路的四种算法(floyd ,dijkstra ,bellman(可以计算负权值),spfa(队列优化的bellman))最小生成树两种算法(Kruskal,Prim)树上经典问题(最小支配集,最大独立集,最小覆盖集,最长路等)二分图匹配(匈牙利,KM)拓扑排序连通图(强连通,弱连通,重连通,单项连通,并查集)网络流2-SAT动态规划要学会递推实现和记忆化搜索实现状态压缩数位dp背包/贪心(...原创 2017-07-10 15:34:24 · 565 阅读 · 0 评论 -
不凡的夫夫 斯特林公式的应用
链接:https://www.nowcoder.com/acm/contest/75/A来源:牛客网题目描述夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样, 所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。输入描述:第一行是一个整数t(0<t<=1000000)(表示t组数据)接下来t行,每一行有一个整数n(0<=n<=10000000)输出描...原创 2018-02-13 18:56:55 · 573 阅读 · 0 评论 -
AtCoder Grand Contest 020 B - Ice Rink Game
B - Ice Rink GameTime limit : 2sec / Memory limit : 512MBScore : 500 pointsProblem StatementAn adult game master and N children are playing a game on an ice rink. The game consis原创 2018-01-15 14:56:33 · 501 阅读 · 0 评论 -
hdu 2036 改革春风吹满地
这道题是用向量法求三角形面积 只要用三角形两边即可,(x1y2-x2*y1)/2就是其中一个面积所以可以这样写(不过没有考虑凹边形也ac了) #include <stdio.h>int a[105][2];double myfun(int n){ return a[n][0]*a[n+1][1]-a[n][1]*a[n+1][0];}int main()...原创 2017-01-20 15:46:11 · 1039 阅读 · 0 评论 -
AtCoder Beginner Contest 086 D - Checker
D - CheckerTime limit : 2sec / Memory limit : 256MBScore : 500 pointsProblem StatementAtCoDeer is thinking of painting an infinite two-dimensional grid in a checked pattern of side K. Here,...原创 2018-02-26 23:50:41 · 418 阅读 · 1 评论 -
hdu 2211 杀人游戏
这道题做的人不多,而且网上凡是用递归解决的都缺少推导过程,笔者安安静静的动笔算了一遍,发现这道题的两个关键点—— 希望阅读者珍惜笔者的劳动成果,转载请注明出处:http://blog.csdn.net/u012717411★先说递归思想:递推关系+边界条件,二者缺一不可。这道题的递推关系是根据前一轮胜利者的编号确定当前轮胜利者的编号,一直递推下去到最后一轮(也就是边界条件),胜利者在...转载 2017-01-20 15:13:19 · 858 阅读 · 0 评论 -
递增数 1002
Problem Description若一个正整数A,相邻位总是满足低位大于等于高位,则称之为递增数。例如:1223,667 等都是递增数。现在有个正整数X,请问有多少个正整数A满足1<=A<=X,且A为递增数。 Input输入数据第一行是一个正整数T(1<=T<=20),表示测试数据的组数。接下来T行,每行一个正整数X(1<=X<=...原创 2017-01-04 19:34:09 · 701 阅读 · 0 评论 -
AtCoder Beginner Contest 091 D - Two Sequences
D - Two SequencesTime limit : 3sec / Memory limit : 256MBScore : 500 pointsProblem StatementYou are given two integer sequences, each of length N: a1,…,aN and b1,…,bN.There are N2 ways to choose two i...原创 2018-03-27 10:55:49 · 339 阅读 · 0 评论 -
分治法写最大子列和问题
int Max3( int A, int B, int C ){ /* 返回3个整数中的最大值 */ return A > B ? A > C ? A : C : B > C ? B : C;} int DivideAndConquer( int List[], int left, int right ){ /* 分治法求List[left]到List[right]的转载 2016-10-22 18:37:34 · 563 阅读 · 0 评论 -
循环比赛日程表 (分治)
题目描述设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N-1天,要求每天没有选手轮空。输入M(1输出表格形式的比赛安排表,每个数占3列。输入样例1输出样例 1 2 3 4 5 6 7 8原创 2017-08-15 10:43:09 · 886 阅读 · 0 评论 -
简单的八数码问题(BFS)
问题 A: 八数码时间限制: 1 Sec 内存限制: 256 MB提交: 9 解决: 7[提交][状态][讨论版]题目描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最原创 2017-07-28 15:44:54 · 1542 阅读 · 0 评论 -
数组中的主元素
主元素的概念是一个元素的出现次数占50%以上快排方法,复杂度O(nlogn)占50%,所以中间元素一定是主元素int get(int A[], int n) { sort(A,A+n); return A[n/2];}利用主元素的特性求已知有主元素的数组的主元素,复杂度O(n)因为其占50%以上,出现一次得++,不同得--,所以最后保留下来的一定是主元原创 2017-07-06 10:53:21 · 2500 阅读 · 4 评论 -
hdu 2604矩阵快速排序
Queues and Priority Queues are data structures which are known to most computer scientists. The Queue occurs often in our daily life. There are many people lined up at the lunch time. Now we d转载 2016-11-09 20:38:40 · 537 阅读 · 0 评论 -
uva 1149 Bin Packing 装箱 (二分+贪心)
这题应该很容易就想到贪心,然后通过观察数据量就知道了如果用暴力会超时,所以这里用二分,博主懒,用了STL的upper_bound,(输出时格式注意下,博主第一次WA)不多说,上代码,不懂的看注释吧 //// main.cpp// B - 装箱//// Created by wenhan on 2017/8/14.// Copyright © 20...原创 2017-08-14 16:13:08 · 338 阅读 · 0 评论 -
dd大牛的背包九讲-背包问题汇总
背包九讲目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附:USACO中的背包问题 前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃转载 2017-01-05 19:26:16 · 2908 阅读 · 0 评论 -
背包问题(背包算法)(基础)
背包问题wiki可以想象这样一个场景——小偷在屋子里偷东西,他带着一只背包。屋子里物品数量有限——每件物品都具有一定的重量和价值——珠宝重量轻但价值高,桌 子重但价值低。最重要的是小偷背包容量有限。很明显,他不能把桌子分成两份或者带走珠宝的3/4。对于一件物品他只能选择带走或者不带走。示例:Knapsack Max weight : W = 10 (转载 2016-08-18 08:45:39 · 918 阅读 · 0 评论 -
洗衣服 1003
Problem Description学校的洗衣机有4种模式:1、单脱水;2、快速洗;3、标准洗;4、大物洗。分别对应的价格是1、2、3、4元。其中——单脱水最多脱水3件衣服(无清洗功能);快速洗最多3件(脱水+清洗);标准洗最多6件(脱水+清洗);大物洗最多洗10件(脱水+清洗)。温馨提醒:以上可以看出,洗衣服中包含脱水功能。现在XZ累积了n件衣服要处原创 2017-01-04 19:37:36 · 1100 阅读 · 0 评论 -
背包之01背包、完全背包、多重背包详解
PS:大家觉得写得还过得去,就帮我把博客顶一下,谢谢。首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟下,再大一些就不可能了,所以,诸如递归,动态规划之类的,不能细想,只能转载 2016-08-18 09:12:44 · 331 阅读 · 0 评论 -
博弈总结
以下是我从网上收集的关于组合博弈的资料汇总:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取...转载 2017-08-15 10:51:08 · 248 阅读 · 0 评论 -
hdu 1846 Brave Game hdu 1847 Good Luck in CET-4 Everybody! (简单的巴什博奕)
Brave GameTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11967 Accepted Submission(s): 8076Problem Description十年前读大学的时候,中国原创 2017-07-05 11:31:01 · 391 阅读 · 0 评论 -
hdu 2147 kiki's game
Problem DescriptionRecently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of the chesserboard is n*m.First of all, a coin原创 2017-01-14 10:49:54 · 786 阅读 · 0 评论 -
hdu 6024 Building Shops
Building ShopsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2659 Accepted Submission(s): 911Problem DescriptionHDU’s n classrooms are on ...原创 2018-05-15 10:52:33 · 226 阅读 · 0 评论