11.04.30 半夜清晨
摘要:好一阵子没来blog了。没错,间歇性迷茫。期中考的缘故,两周没碰题。最近又开始刷usaco,先恢复下手感脑感。但是,真的是刷题无力。各种无力。但是呢,哥是不会放弃的,这个不用怀疑。院科协换届了,貌似我成了骨干,于是自然得发觉自己要想想下学期的星火杯了。不只是个人了,还是为院,为大一的一个表率吧。结果被GUI弄得头痛额。接下来还不知道是怎样。把C++里的东西再学学,然后针对GUI,Qt?wxWidgets?wpf?C#?总之学习计划又要满满了。yeah,我就是爱着挑战。~Bless me!
阅读全文
记录一下近况 11.04.22
摘要:1.校赛上周比完月赛,成绩总算是有了点进步。2.期中考下周一就开始期中考了,本打算这周不A题,时间全用来复习的。但是我发现,我已经“上瘾”了 。一日不code,手痒,心痒。 = =、于是,还是小刷了一下usaco。课内的东西,整理了2个晚自习,觉得还行。我觉得经过不断地对算法的学习,思维灵敏度真的提高了些,看高数神马的简直是秒杀的理解。额,其实原来上课大多用来补充睡眠了,所以云里雾里。ACM确实是激起了我对各种知识的追求,所以学科上也能以一种很追求本质的态度去看问题。个人觉得这是ACM的一个神奇之处,它无限的魅力正吸引着我。3.Algorithm这两天把网络流的东西看了下。这将是算法学习道路上
阅读全文
二分图最大匹配 - 匈牙利算法
摘要:问题描述:X集合(编号1~m),Y集合(编号m+1~n)。n,m<100. 给出若干组合(x, y)(相当于映射x->y),问最都能同时有几个组合(分配)。分析:题目可能简化描述得不太好,这显然是一个二分图最大匹配的问题。(二分图)可以用匈牙利算法,或者网络流来求解。这里介绍匈牙利算法。匈牙利算法的核心就是找增广路。不断找增广路,然后更新现有匹配M(M可以看成是X->Y的一个特殊的映射关系),每次更新,都能使匹配数增加一。当找不到增广路时,M就是最大的匹配。算法具体流程:①记X上点为u,Y上点为v。记f[v] 为u->v的映射对应的u,即v的对应点,f[v]=u。(初始
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / D - String Successor
摘要:返回目录悲剧地wa了,不知道哪错,而且代码越改越恶心不喜勿看=。= ,知道哪错的麻烦告诉我一下O(∩_∩)O...①未改#include<cstdio>#include<cstring>using namespace std;inline int Rint() { int x; scanf("%d", &x); return x;}#define MAXN 110unsigned char s[MAXN];int n;int m;int isan(int cur) //!!{ for(int i=cur; i>=0; i--) if((
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / M - Median
摘要:返回目录代码:#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;inline int Rint() {int x; scanf("%d", &x); return x;}inline double Rd() {double x; scanf("%lf", &x); return x;}int n;#define MAXN 502double a[MAXN];int ma
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / L - Javabeans
摘要:返回目录代码:#include<cstdio>#include<cstring>#define int64 long longinline int64 Rint() {int64 x; scanf("%lld", &x); return x;}int64 n;int solve(){ int ans=0; while(n) { n/=2; ans++; } return ans;}int main(){ int64 t = Rint(); while(t--) { n = Rint(); printf("%d/n", so
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / F - Kagome Kagome
摘要:返回目录代码:#include<cstdio>#include<cstring>#define MAXN 102char a[MAXN][22]; //0~n-1inline int Rint() {int x; scanf("%d", &x); return x;}#define Fi(n) for(int i=0; i<n; i++)int n;char b[22];int main(){ int t = Rint(); while(t--) { int pos; n = Rint(); scanf("%s",
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / B - Conic Section
摘要:返回目录代码:#include<cstdio>#include<cstring>using namespace std;void solve(){ if(a!=0&&c!=0&&a==c) printf("circle/n"); else if(a!=0&&c!=0&&a!=c&&a*c>0) printf("ellipse/n"); else if((a==0&&c!=0&&d!=0)||(a!=0&&a
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / A - Ordinal Numbers
摘要:返回目录代码:#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;inline int Rint() {int x; scanf("%d", &x); return x;}int x;void solve(){ int t = (x/10)%10; if(t == 1) { printf("%dth/n", x); } else { t = x%10; if(t == 1) pr
阅读全文
The 8th Zhejiang Provincial Collegiate Programming Contest / 解题报告 11.4.16
摘要:比赛链接先声明本人菜鸟一只,各种牛就不用看了⊙﹏⊙b..写在这里只为督促自己尽快弄完这些题咯。解题报告链接:A Ordinal Numbers 51.24% (413/806)B Conic Section 29.45% (291/988) C Old Labels 5.26% (6/114)D String Successor 15.50% (198/1277) E Wall-nut Bowling 0.00% (0/13)F Kagome Kagome 55.55% (345/621) G Palm Up and Palm Down 10.52% (4/38) H BCD Code 15.
阅读全文
USACO太纠结了 04.12
摘要:我擦前面的模拟题太他妈恶心了!!!!!一道题都是交N遍调N久才过的。 我擦!!!!我想去shi了。~~~~(>_<)~~~~ .....!!!
阅读全文
c++读写文件操作
摘要:最近计划刷usaco,转个c++文件操作的入门帖。http://hi.baidu.com/ctralt/blog/item/cde79fec87f841302697911c.html
阅读全文
集合划分 DP
摘要:题目:e.g. TOJ 2820/XDUOJ Problem 1079 - 贝尔分析:先明确,设d[i][j]为i个数分成j个集合的情况数。d[i][j] = d[i-1][j-1] + j* d[i-1][j].①d[i-1][j-1],也就是i-1个数分为j-1个集合的时候,只要再加一个元素独自成为一个集合,就成了i个数分为j个集合的情况。②j* d[i-1][j] ,i-1个数分为j个集合的时候,j个集合中任选一个集合,新加入一个元素,就成了i个数分为j个集合的情况。停止条件,d[i][i] = d[1][*] = d[*][1] = 1;这样,f(n) = sigma(d[n][j])
阅读全文
XDUOJ Problem 1082 - Let's SPFA II
摘要:Problem 1082 - Let's SPFA II Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 185 Accepted: 17 Special Judge: No Description 邮递员去送信,他初始在街道口S,要给A,B两个街道口送信,你的任务很简单,计算从S出发按任何顺序访问A,B, 使得邮递员总路程最短.邮递员所在的城市有N(N<=100000)个街道口,M(M<=200,000)个街道,街道是双向连通的. Input第一行,M,N,S,A,B表示,M个街道,有N
阅读全文
USTC Monthly Contest 2011-04-10 / 解题报告
摘要:比赛链接解题报告链接(开坑不解释):A Square Root 11.1% 4/36 B Shortest Subsequence 25.5% 25/98 C Draw a Circle to Curse You! 0.0% 0/0 D Packing chocolate 0.0% 0/0 E Weight loss plan 0.0% 0/0 F Crazy Biscuits 25.0% 24/96 G Academic Report in USTC 43.8% 7/16 H The World Of Dango 0.0% 0/4分析:B 串的问题 dp?F 拓扑排序?差分约束?
阅读全文
UVA 10048 - Audiophobia
摘要:题目大意:给出一个图,求某点到某点所必须忍受的最小噪音(即所经过路径的相邻两点的权的最大值最小)。 中文翻译 题目链接 题目类型:图论 / Floyd 题目分析: ①虽然做的是图论专题,但是开始还是觉得可以dp(后来证明我之前没有充分理解所谓“松弛技术”)。结果是写了一个可以过样例但是wa的d...
阅读全文
UVA 10034 - Freckles
摘要:Q10034: Freckles給你一些點的座標,把這些點用墨水畫直線連起來,使得所有的點最後都連在一起。你的任務是寫一個程式找出墨水畫出的長度最小是多少?Input輸入的第一列有一個整數,代表以下有幾組測試資料。每組測試資料的第1列有一個整數n(0 #include //使用 setprecis...
阅读全文
【转】三分法——求解凸性函数的极值问题
摘要:不懂三分,发现个很不错的,讲三分的,转一下。 http://hi.baidu.com/acmdearway/blog/item/8cb3370240ba3d9cd53f7c00.html 三分法——求解凸性函数的极值问题——czyuan原创 二分法作为分治中最常见的方法,适...
阅读全文
Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) / C A Coin Problem
摘要:返回目录 先贴出官方解题报告 *******************************************************************************C A Coin Problem矩阵二分.从左往右添加硬币,用dp[i][0]表示长度为i且最右边的一个硬...
阅读全文
Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) / B The Weight of Tree
摘要:返回目录 未完 这题,我看不懂。 什么是子树? 最后一个样例 5 -2 -3 7 -1 41 22 33 42 5怎么会maxsum = 8 呢? -3 4 7 怎么会在一个子树上? !!!???
阅读全文
Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) / M A Simple Problem
摘要:返回目录 题目大意: 背景是acm比赛的成绩排名规则,要求输出成绩最好的那个队。 题目类型: 排序题 题目分析: 利用 #include 的sort排序,自定义cmp函数。 代码: #include #include #include using namespace std; ...
阅读全文
关于宏 & 内联函数 - 11.4.8
摘要:未完 最近看到有人这样用 inline int Rint(){ int x; scanf("%d", &x); return x;} //int Tcase = Rint(); 来读取一个整数 显然是为了代码能敲得更快,但是这个跟宏有什么区别和共通之处呢。我找了一些资料。 ①inli...
阅读全文
Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) / A Course
摘要:返回目录 题目大意: 输入一些课程和对应的成绩,假设是按时间发展顺序。求重修成功(即同一课程,后一次比前面的最大成绩大的情况)次数。 题目类型: 模拟 题目分析: 虽然是水题,但是不注意细节还是很容易WA。注意点吧。 另外,既然是水题,做的时候就不要轻易放弃它,相信可能错的地方就那...
阅读全文
最大子段和
摘要:问题描述:给定数列 a1 a2 ....an要求求ai+...+aj 使其和最大 晚上做一道题想到这个问题,记得刘汝佳的书上是拿这个来讲分治的,印象太深,发现dp其实可以O(n), 还比分治简单,擦。还到网上去查了一下,继续各种误导。纠结了一下。 普通算法是O(n^2)分治算法是O(nlo...
阅读全文
差分约束系统 - 最短路
摘要:如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。 求解差分约束系统,可以转...
阅读全文
单源最短路径算法 Bellman-Ford && SPFA 及 最短路算法统一归纳
摘要:为避免各种求最短路的方法混淆,开始之前先做个归纳。 ① BFS - 无权图 (有向或无向,有环或无环)- 对于树的bfs,无需判重,因为根本不会重复。对于图的bfs,要有vis[]进行判重,不然一个点可能被多次拓展,极大地浪费时间空间。 ② dp - 有向无环图(DAG,带权或不带权)- 很多...
阅读全文
拓扑排序 toposort
摘要:大意: 对于DAG(有向无环图),把图中所有结点排序,使得每一条有向边(u, v)对应的u都排在v的前面。直观地说,就是用一条线把有向图 中所有点连起来(当然是遵循有向边的)。 注:①有环图是不存在拓扑排序的。(因此可以用来判断图是否有环)。 ②一个DAG可能有多个拓扑...
阅读全文
正权图单源最短路(SSSP)- Dijkstra算法
摘要:引言: DAG上的最短路可以用dp解得,容易得到状态转移方程。但如果图中可以有环,就要使用其他算法了。这里先考虑边权均为正的最短路问题。 Contents: 一、 普通的dijkatra实现 O(n2) 二、采用邻接表 三、 基于优先队列的Dijkstra O(mlogn) 给出样例问题...
阅读全文
最长增减子序列(LIS变体)
摘要:代码: #include #include using namespace std; #define MAXN 10000 int a[MAXN]; int d[MAXN]; int vis[MAXN]; int n; int ans; int dp(int cur, int x) ...
阅读全文
关于最长递增子序列问题的求解(LIS)
摘要:本文会介绍几种复杂度不同的算法,并给出实现。 一、转化为最长公共子序列(LCS)求解 二、普通dp 三、LIS的O(nlogn)算法 问题描述: 设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1是对序列L=按递增排好序的序列。那么显然X与L的最长公共子序列即...
阅读全文
Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) / 解题报告 4.4
摘要:Sichuan University Programming Contest 2011 Preliminary(for Non-SCUers) Date 2011-04-04 12:00 Length 5h 解题报告链接如下(先开个坑): ID Problem A Course B...
阅读全文
XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem B N! Last non zero
摘要:返回目录 题目大意:求N!的最后一个不为0的数字,例如5!=120,那么最后一个不为0的数字是2。(1<=N<=1000) 题目类型:简单数学 / 精度 题目分析: 这题开始的时候WA了,因为我以为只要保留每个阶层的最后一位非零数即可,即di为i!的最后非零数,则di = ([d[...
阅读全文
XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem H 子段和计数
摘要:返回目录 此题尚有问题,明天改过 题目大意:一个数组长度为n的数组A,求出其中和是B的倍数的子段有多少个,结果mod B后输出。子段:像A2A3A4A5A6这样连续的一段。 题目类型:暴力枚举 题目分析: 开始以为是dp,但是后来发现他没有要求最优化,只是求总和,所以算是枚举吧。 ...
阅读全文
XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem C SBB的烦恼
摘要:返回目录 题目大意:求x^2-x+y^2-y-2*x*y=0在1 #include #include #include using namespace std; int f(int a, int b) { int xa = 2; double xb = (sqrt((double)1+8...
阅读全文
XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem A 连续自然数和
摘要:返回目录 题目大意:给定整数M(10 #include #include using namespace std; int m; void f() { int a, b; int t = 1+(int)sqrt((double)1+2*m); //上界 for(int i=t; i...
阅读全文
XTU (湘潭大学) 2011 新生练习赛(第一场)/ 解题报告 4.4
摘要:Start Time:2011-04-04 14:00:00 End Time:2011-04-04 17:00:00 解题报告链接如下(老样子慢慢补 = =): Problem A 连续自然数和 Problem B N! Last non zero Proble...
阅读全文
The 11th Zhejiang University Programming Contest - G/ Gaussian Prime
摘要:返回目录 题目大意:在复平面上指定一个范围,求这个范围里的高斯素数的密度(即 高斯素数个数/总坐标数, 化为真分数) 。 题目类型:基础模拟题 / 数学背景题 题目分析: A Gaussian integer a + bi is a Gaussian prime if and on...
阅读全文
The 11th Zhejiang University Programming Contest - C/ Chinese Zodiac
摘要:返回目录 题目大意:输入今年(2011)虚岁年龄,输出他的生肖属相。 题目类型:基础模拟题 题目分析:很明显的%12循环数,0~11记录生肖,注意生肖顺序应该是从今年的 兔 倒着数过去的。 代码: //子(鼠)丑(牛)寅(虎)卯(兔)辰(龙)巳(蛇)午(马)未(羊)申(猴)酉(...
阅读全文
The 11th Zhejiang University Programming Contest - J/ Judge Internal Error
摘要:返回目录 题目大意:输入一串数,输出出现次数最多的那个数,若有多个数符合则输出最大的那个 。 题目类型: 基础模拟题 题目分析: 把一组数升序排序,然后从头到尾扫描更新出现最多次数的数。 代码: #include #include #include //sort using ...
阅读全文
The 11th Zhejiang University Programming Contest / 解题报告 4.3
摘要:Description: The 11th Zhejiang University Programming ContestStart Time: 2011-04-03 13:30:00 (GMT+8) Length: 4 Hours 解题报告链接如下(其他没A出来的会慢慢补上): A Ak...
阅读全文