ACM

ACM,algorithm

TC-srm454

1

昨天凌晨一点终于等到了期待已久的TC..前段时间和区域赛冲突一直没做,上次又遇到TC服务器蹦掉,搞出个454.5.悲剧之极

这次题目其实很水
250暴力模拟.敲的不够快,才240分
做500的时候完全脑残了.没看见返回值是longlong,直接爆搜,结果写了半天发现样例都跑不出来,只能作罢.后来想到DP瞬间敲出代码…不过时间已经在搜索上浪费了很多,只剩200多分..
1000分和以往一样,看了后没啥思路.这次有思路也没时间敲了.

剩下的时间打算出点数据cha人,发现250有个trick,正着做和反着其实结果不一样,但是一般人喜欢正着遍历,很不幸,我也是这样的,于是在最后一分钟的时候修改代码,只剩75分….
赛后和ACM-DIY群里的人说了一下这个trick,果然有N多大牛和我犯了同样的错误..和大家分享了8这个数据后大家纷纷在自己房间里推倒一片人,然后抱怨为什么不能把自己的代码cha了,哈哈
最后系统判完之后排180+…好挫,不过还是加分了,加到了最高分1789.连一分都没有突破T T

PS.庄立不小心250做挂掉,还乱cha人变成了负分,掉了200多分创历史新低,打回原形,同情一下
杭航连续两次分到room1,并且这次把petr都虐了,创历史新高,仰慕一下,祝早日变成target

Popularity: 3% [?]

网络流专辑

21

网络流是ACM里非常重要的一大块,变形非常灵活,这些天仅仅只是做了一点点题目,几个经典模型,冰山一角而已.
图论可不是练两天就能掌握的,所以也就放弃了一口吃成胖子的想法,打一场持久战,有空的时候更新几道并在下边写点解题报告,所以暂时不可能成为一篇非常完整的整理
所以我在下文加了几个相关链接,都是大牛们的整理,并且也有这对题目的相关分析…
(更多…)

Popularity: 25% [?]

有向图的强连通

6

强连通缩点
其法有三:Kosaraju,Trajan,Gabow
Kosaraju时间稍慢,需要建反边+两次dfs,但是第二次dfs的时候就可以顺便把新图建出来
Gabow算法两个栈比较恶心,效率最高,比Trajan少了一些更新low数组的过程
三者代码量相差无几,60上下
个人感觉还是Trajan最实用,而且low的计算和割边割点还有联系

我觉得HDU2767这题可以来试强连通分量模板
题目大意是给你一个有向图,问你至少加几条边让整个图变成强连通
解法:缩点后统计没有出度的和没有入度的点个个数,两者取最大值

同时推荐byvoid的网站
BYV大牛的tarjan算法介绍,写的非常详细

Popularity: 7% [?]

图论专辑

2

图论里包含的东西太多了,我几乎什么都不会
于是我要从最基础的学起- -
这篇文章慢慢更新我学的知识
(更多…)

Popularity: 5% [?]

第k元素log(n)算法–划分树

49

前几天学线段树,这个经典的K-th number一直没有做,关键是听别人说复杂度是log(n)^3,我对这个需要两次二分+一次查找的算法非常的不爽,于是一直拖着没搞
今天正准备着手这题的时候,发现PKU的Disscuss有人提到log(n)的算法,而且编程复杂度比log(n)^3的还小,于是对这种算法充满了憧憬,那个log(n)^3的写到一半也放弃了(其实log(n)^3的归并树算法化简了之后就是求n个有序数列的第k大数)
YY了很久之后,得到下边这个代码..关键部分已经很明白的加了的注释
完全看明白之后会发现一个非常有趣的现象,划分树逆着做就变成了归并树
(其实我也不知道这是不是hyerty大神所说的划分树,乱YY的)
画了一颗划分树对数列[1 5 2 3 6 4 7 3 0 0]进行划分,下图有助于理解(红色表示该数被分到左儿子)

划分树

划分树


(更多…)

Popularity: 33% [?]

线段树专辑

128

欢迎大家移步去看这篇写的更详细的文章

这几天陆陆续续更新了下边几道我所能找到得具有一些代表性的线段树题目
从最最简单的区间求和到对区间的各种操作都包涵在这些题目里了
相信对一些准备学习线段树的人有一定得帮助
突然发现自己对数据结构的题目非常有感觉,所以在刷下边的题的同时也生出灵感出了好几道线段树题目
等比赛结束后也会陆续加进里边
(更多…)

Popularity: 100% [?]

test

2

测试一下贴代码

顺便把我的模版贴上来,我每段代码基本上都会用到这50行预定义..所以大家看到一道水题我要写几千B的时候不要误会了XD
所以以后我贴出来的代码会少很多头文件很多代码大家看不懂,和这段合起来看就OK啦~~

这也是从TopCoder上的大牛们那学来的,即可加快了代码速度,也可减少了编码的低级错误..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//by NotOnlySuccess
 
#include "cstdlib"
#include "cctype"
#include "cstring"
#include "cstdio"
#include "cmath"
#include "algorithm"
#include "vector"
#include "string"
#include "iostream"
#include "sstream"
#include "set"
#include "queue"
#include "stack"
#include "fstream"
#include "iomanip"
#include "bitset"
#include "list"
#include "strstream"
#include "ctime"
using namespace std;
 
typedef long long LL;
typedef unsigned long long ULL;
#define CC(m,what)		memset(m,what,sizeof(m))
#define FOR(i,a,b)		for( int i = (a) ; i < (b) ; i ++ )
#define FF(i,a)			for( int i = 0 ; i < (a) ; i ++ )
#define FFD(i,a)		for( int i = (a)-1 ; i >= 0 ; i --)
#define SS(a)			scanf("%d",&a)
#define LL(a)			((a)<<1)
#define RR(a)			(((a)<<1)+1)
#define SZ(a)			((int)a.size())
#define PP(n,m,a)		puts("---");FF(i,n){FF(j,m)cout << a[i][j] << ' ';puts("");}
const double eps = 1e-11;
const double Pi = acos(-1.0);
 
#define read			freopen("in.txt","r",stdin)
#define write			freopen("out.txt","w",stdout)
 
#define two(x)			((LL)1<<(x))
#define include(a,b)		(((a)&(b))==(b))
template<class T> inline T countbit(T n)	{return n?1+countbit(n&(n-1)):0;}
template<class T> inline T sqr(T a)	{return a*a;}
template<class T> inline void checkmin(T &a,T b)	{if(a == -1 || a > b)a = b;}
template<class T> inline void checkmax(T &a,T b)	{if(a < b)	a = b;}
 
int dx[] = {-1,0,1,0};//up Right down Left
int dy[] = {0,1,0,-1};

Popularity: 4% [?]

一个月时间

4

线段树
网络流
AC自动机
模版题:后缀树,最小树形图,最近公共祖先(最后这三个比较水)

大概很多人都不相信上边这些基础应该掌握算法和每个人都有的模板我都不会..但事实是对以上算法我所知确实为0..

一个月时间,从0到掌握.实在是一个挑战

只是最近很是懒散,本该开始的任务到现在才下定决心去干,好吧…带上耳机,隔绝杂念,恢复去年今日的战意~

Popularity: 3% [?]

我们出线了。。。

9

今天听到这个消息都我简直形容不出我有多么的惊讶(最直接表现的是我含在嘴里的口香糖因为嘴巴张的太大而掉到了地上- -)

Popularity: 3% [?]

Page 6 of 6« First...23456
Go to Top