自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SUNSET

ACM-ICPC算法系列

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 codeforces 818G - Four Melodies 费用流,压缩建图,好题

G. Four Melodiestime limit per test5 secondsmemory limit per test1024 megabytesinputstandard inputoutputstandard outputAuthor note: I think some of you might remember the problem "Two Melodies" from E...

2017-10-29 14:38:17 1329

原创 codeforces 884F 费用流,图解很清晰

代码:#includeusing namespace std;const int inf = 1e9;const int mm = 111111;const int maxn = 2999;int node,src,dest,edge;int ver[mm],flow[mm],cst[mm],nxt[mm];int head[maxn],work[maxn],dis[maxn],

2017-10-28 16:28:23 1310

原创 codeforces 877F F. Ann and Books hash+莫队算法

题意:给你一堆数字,每个数字有正负之分,求任意区间内和为k的子区间的个数。题解:先把前缀和都求出来,构成一个数组sum。建立一个hash表,然后考虑区间sum[l,r],从左到右扫,每扫到一个前缀sum[i],从把答案加上hash_table[sum[i] - k],并且hash_table[sum[i-1]]++;这是对于固定区间的做法,要用莫队得证明区间左右端点移动的时间复杂度

2017-10-28 13:42:31 331

原创 codeforces 878C Tournament平衡树,好题!!!!

C. Tournamenttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputRecently a tournament in k kinds of sports ha

2017-10-28 13:01:15 1219

原创 codeforces 878B B. Teams Formation 模拟

B. Teams Formationtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThis time the Berland Team Olympiad in I

2017-10-27 16:42:51 685

原创 重温基数排序

前几天沈阳现场赛遇到了一道题,其中的一部分不能用快排,只能用基数排序,当时不会写基数排序,gg,从银滑到了铜。。。。真是血的教训,现在再来回顾一下。输入n个整数,最大的整数不超过6位,这些数存在a数组里,用基数排序的方法,给这些数排序。定义下面几个数组:bs[10]:基数排序的桶rk[10]:rk[i]表示编号为i的数当前位的排名大小。y[maxn]:y[i]表示低位排好序的结

2017-10-25 18:15:22 132

原创 codeforces National Property 2sat模板题

题目链接每个字符只能取小写和大写两种情况,因此满足2-sat的要求。我们从第2个word开始,与前一个word进行比较。比较的时候从word左边的字符开始,找到左起的第一个不相同的字符(位置为pos)。1.如果word[i-1][pos]那么表明如果word[i-1][pos]取小写的话,那么word[i][pos]一定要取小写。同时word[i][pos]取大写的时候,w

2017-10-17 20:06:12 320

原创 求凸函数极值 CSF迭代法(雾)

简介本算法用来求解凸函数极值点的问题,由作者在写ACM习题时想到,在网上并未找到这样的算法,拿出来给大家分享一下,如果网上没有的话,我决定给它起名叫做 CSF迭代法,如果这个算法早已经存在,那就当看个笑话吧。 算法步骤确定一个常数nn,表示区间的划分粒度,以及一个常数epseps表示精度。先从定义域[l,r] [l,r]中等差地取出n个点,x1,x2,...,xnx_1,x_2,...,x_

2017-10-16 13:22:25 1408

原创 codeforces Cable Connection

我的思路很暴力直接枚举斜率[-100000,0]之间,然后设置一个非常远的直线,对所有点扫一遍,确定一个离这条直线最近的点P。用点P和斜率k来创建cable,并用cable的距离来relax答案。现在问题在于,怎么来枚举k,如果直接枚举,设置步长的话,不是超时就是精度不足。因此我们需要想个办法来枚举k。我们先枚举0,10000,20000,...,100000找到一个最优答案,

2017-10-14 14:39:39 275

原创 codeforces F.Forbidden Indices后缀数组+LCP

F. Forbidden Indicestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a string s consisting of

2017-10-14 14:22:36 377

原创 codeforces D. Merge Sort 分治

D. Merge Sorttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMerge sort is a well-known sorting algorithm.

2017-10-13 14:22:47 444

原创 codeforces Balanced Substring

B. Balanced Substringtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a string s consisting on

2017-10-13 14:19:23 322

原创 Juice Extractor dp

题意:水果忍者游戏,给出N个水果的出现时间和消失时间。每次切可以清除该时刻中屏幕上的所有水果,只有combo>=3的时候才得分,得分为combo的值。题解:可以把每个水果看成是一段时间区间。然后把这些区间按照出现时间为第一关键字,消失时间为第二关键字排序。我们定义dp方程dp[i]表示最后一刀切掉第i个水果,所获得的最大积分。那么,最优的方案肯定是在第i个水果出现时间进

2017-10-09 10:24:53 273

原创 Detection of Extraterrestrial KMP匹配 重复k次子串 好题

一开始以为这道题是后缀数组,想了好久没想明白怎么做,后来发现暴力枚举起点,进行KMP就好了。枚举起点以后,构建fail数组。遍历fail数组,如果串s[l,r]是由串s[s,t]重复k次得到的,那么fail数组的样子一定如下index: [l] [l+1] [l+2] ....[t] [t+1] [t+2]....[r]    fail: [0] [*]   [*]     ...

2017-10-08 19:55:54 236

原创 Boring Homework 二叉搜索树的打印,模拟

写了好长时间,注意递归的使用,思路一定要清晰。还有注意的地方:打印的时候一定要先打印到缓存buffer中,然后再输出到屏幕上面。#include using namespace std;int idx = 0;int val[100],lft[100],rgt[100];int num[100][2];int root;void insert(int &rt,int x){

2017-10-08 19:48:53 254

原创 Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟

一道好题题目详见题目连接G graph显然模拟拓扑排序的步骤是必不可少了。假设我们当前有t个点,他们的入度均为0.我们不知道该选取哪一个。我们把这t个点按从小到大排好序(放入小顶堆),假设我们目前有k条边(k 现在问题来了,我们给前k个点加一条边,保证了这k个点不被取到,但是,我们怎么知道这条边的父节点是谁呢?没错,我们确实不知道,但是我们目前还不需要知道,所以我们打上标记,可

2017-10-07 11:36:05 323

原创 编译原理练习 递归下降

#include using namespace std;const int syf = (1<<31)-1;const int maxn = 40;char buf[maxn];char mp[128];char *bp;void init(){ for(int i = 0;i < 128;++i) mp[i] = i; bp = buf;}inline bool matc

2017-10-07 10:50:04 568

基于 RBAC与监听器机制设计作业管理软件

基于 RBAC与监听器机制设计作业管理软件

2017-10-19

空空如也

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

TA关注的人

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