自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员充电站(itcharge)

高效率编程,慢节奏生活。

  • 博客(80)
  • 资源 (3)
  • 收藏
  • 关注

原创 KMP【模板】

char str[1000010],pat[1000010];//pat为模式串,str为主串int Next[1000010]; //Next[x]下标x表示匹配失败处字符下标//模式串pat的前缀与x位置的后缀的最大匹配字符个数-1void GetNext(char *pat){ int LenPat = strlen(pat); int i = 0,j = -1;

2015-04-28 18:27:40 1019

原创 HDU2642 Stars【二维树状数组】

题目大意:现在假设天空是一个二维平面(1000*1000)。坐标从(0,0)点开始。现在给出N条信息。"B X Y",B为字符,x、y是整数,表示将坐标(x,y)的星星变亮。"D XY",D为字符,x、y是整数,表示将坐标(x,y)的星星变暗。"Q X1 X2 Y1 Y2",Q是字符,X1、X2、Y1、Y2是整数,表示问有多少颗星星在X1、X2、Y1、Y2确定的矩形中。思路:建立一个二维的树状数组,单点更新,区间求值。其实和一维的差不多。只不过第i个元素变为了第x行第y列的元素。更新和求值

2015-04-28 17:28:31 1076

原创 HDU2838 Cow Sorting【树状数组】【逆序数】

题目大意:有N头奶牛排成一排。每头奶牛都有一个唯一的"坏脾气"值。坏脾气的范围为1~100000。现在将奶牛重新排序,使奶牛按照坏脾气增加的顺序排列。所有的奶牛都可以相互交换位置。但是交换脾气值为X,Y的两头奶牛,需要的时间是X+Y。现在问:将奶牛重新排列需要的最短时间是多少。思路:这道题就是给你一个N个元素的序列,求这个序列中所有逆序数的和。所以,对于值为a的第i个元素,除了知道前i个元素里比a大的元素个数之外,还得知道前i个元素里比a大的元素的和。建立结构体树状数组,一个变量来记录比a小

2015-04-28 17:05:42 906

原创 HDU2689 Sort it【树状数组】【逆序数】

题目大意:求把一个具有N个不同元素的序列通过交换两个相邻的元素转换成升序序列需要进行的交换次数是多少。例如:1 2 3 5 4,只需要交换5和4,交换次数为1次。思路:典型的求逆序数题。其实可以直接暴力过。但是用树状数组效率比较高。对于值为a第i个元素,需要交换次数为前i个元素中大于a的元素个数,即逆序数。用树状数组来做,数组Tree[i]表示数字i是否在序列中出现过,如果数字i已经存在于序列中,Tree[i] = 1,否则Tree[i] = 0。按序列从左到右将值为a的元素当作下标为a,

2015-04-27 23:02:09 884

原创 HDU1556 Color the ball【树状数组】【区间更新】

题目大意:N个气球排成一排,从左到右编号为1~N,给N组数据,每次给2两个整数s,e,表示从s到e将气球涂色。当涂到N次以后已经忘记了第i个气球被涂过几次颜色了。现在来计算出每个气球被涂了几次颜色,并输出出来。思路:典型的更新区间,单点求值问题。直接模拟会超时,考虑用树状数组来做。单点更新中,树状数组表示区间的和。在区间更新中,树状数组表示单个元素的变化。这道题中,区间(s,e)加1表示将s到e的气球涂色,先进行操作Update(s,1),表示将s~N个气球全部涂一次颜色,再进行操作Upd

2015-04-27 22:42:57 914

原创 POJ2503 Babelfish【map】

题目大意:给你一本字典。字典上每一行为一个英语单词和一个其他国家单词。这样我们就可以通过字典把英语单词翻译成其他国家单词,也可以将其他国家单词翻译为英语单词了。现在再给你几个外国单词,问:字典中是否有这个单词的翻译。如果有,就输出翻译,否则,输出"eh"。思路:这道题其实可以用STL中的map或是字典树来做。map的做法是,建立两个map,一个对应存放翻译,一个用来判断翻译是否存在。注意输入可以先将一行输入进来,判断是否为"\n"。再用sscanf将英语单词和其他国家单词拆分为两个字符串s,

2015-04-26 16:24:07 976

原创 HDU1671 Phone List【字典树】

题目大意:给你N个字符串,判断这N个字符串中是否存在一个字符串是另一个字符串的前缀,如果存在就输出"NO",否则输出"YES"。思路:建立一个字典树,将N个字符串存入字典树中,统计前缀出现次数。再查找这N个字符串,如果出现字符串出现次数>1,则说明重复出现了两次,就输出"NO"。如果都每出现,则输出"YES"。这道题如果每次都不删字典树,清除空间的话,会超内存。所以加上清空字典树的操作。

2015-04-26 11:48:47 795

原创 HDU1358 Period【KMP】

题目大意:给你长度为N的字符串s,求字符串s的循环前缀的长度和循环的次数。例如:长度为8的字符串:"abababab"长度为4的前缀"abab",循环前缀为"ab",循环2次长度为6的前缀"ababab",循环前缀为"ab",循环3次长度为8的前缀"abababab",循环前缀为"ab",循环4次则输出:4 26 38 4思路:KMP算法中Next[j]求的是第j个位置失配之后返回的匹配位置,即S[0]~S[Next[j]]与S[j-1-Next[j]]~S[j-1]是相同的,对于

2015-04-26 10:40:14 890

原创 HDU2203 亲和串【KMP】

题目大意:给定亲和串的定义:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。现在给你两个字符串s1和s2,判断s2是否是s1的亲和串。思路:先判断s2的串长度是否小于等于s1的长度,因为如果s2的串长度比s1还要长的话,s2是不可能是s1的亲和串。然后在s1的串后边在街上s1的串,对s1和s2进行KMP算法,看s1的串中是否包含s2的串,如果包含,则s2就是s1的亲和串,否则就不是亲和串。

2015-04-26 09:32:34 957

原创 HDU4565 So Easy!【矩阵连乘】【推导】

题目大意:定义Sn = [( a + √b )^n] % m,[x]表示x向上取整,比如[3.14] = 4。给你a b n m的值,求Sn是多少。思路:这道题很经典,因为(a-1)^2< b < a^2,所以0 < |a-√(b)| < 1,所以Sn = [( a + √b )^n] % m = ( [( a + √b )^n] + [( a - √b))^n] ) % m。即右边其实是一个整数,如果将右边二项式展开的话,除了相互抵消的部分,剩下的部分全为整数。这个式子设An = (a

2015-04-25 23:26:00 1018

原创 HDU1847 Good Luck in CET-4 Everybody!【博弈】

题目大意:有N张牌,两个人轮流抓,每次抓的牌数只能是2的幂次(2^0、2^1、2^2、…)。最后抓完牌的人获胜。Kiki和Cici都是足够聪明的学生,Kiki先抓,输出赢得比赛的人。思路:找必败点,很容易知道当N==3时是一个必败点,因为只能取1或是2,而剩下的牌肯定能被对手取完,所以3是一个必败点。4能取1把场面变为3,所以4是必胜点,5能取2把场面变为3。而6的话,要么取完剩下2的幂次让对手赢,或者留下机会让对手把场面变为3(必败点)。同理3的倍数一样,不能一次性把牌取完,最后要么自己取

2015-04-25 22:39:50 743

原创 HDU1425 sort【水题】

题目大意:给你N和M,然后给你N个数,输出前M大的数。思路:数据范围为-500000~500000,N的范围为1000000。两种做法。1).建个1000000数组,存N个数,用sort排下序,输出前M大的数,这样提交900+MS,有时会超时。2).建个1000000数组,用下标表示数值,输入一个数,就将对应下标的数值加一。最后从后向前遍历,找到M个数并输出。

2015-04-25 22:25:10 2996

原创 HDU1422 重温世界杯【DP】

题目大意:给你N个城市,参观路线为1~2~3~4~5~…~N~1。可以从任何一座城市开始参观。每座城市提供的生活费和需要的花费都不同,问:最多能参观多少个城市。思路:因为能形成循环,所以在原有数据的后边再接上1~N的数据。然后用动态规划来做。状态为:当上一个城市剩下的钱不为负(即还未结束旅游),如果上一个城市剩下的钱加上当前城市的钱大于当前的生活费,那么dp[i] = dp[i-1] + 1,更新剩下的钱,如果不够旅游了,就将剩下的钱归为0,从当前点开始旅游,计算最大的dp[i],得到的就是

2015-04-25 21:53:36 1451

原创 HDU4496 D-City【并查集】

题目大意:给出一张图,按照给定的边的顺序逐个删除。问每删除一条边后图的连通块数是多少。思路:逆向并查集求联通块数。假设一开始的时候所有点都不连通。从给定边逆着的顺序,即从最后一条边开始添加。如果新添加的边连通了两个连通分量,则连通块数就减一,否则不改变。将每次加边后的连通块数存起来。最后输出出来。

2015-04-25 21:26:16 948

原创 HDU4786 Fibonacci Tree【最小生成树】

题目大意:给你图的N个点和M条双向边。告诉你每条边的权值。权值为1表示该边是白边,权值为0表示该边为黑边。问:能否找到一棵生成树,使生成树白边的个数恰好为fibonacci数。如果能构成这样的fibonacci树,输出Yes,否则输出No。思路:先将fibonacci数列打表。然后根据题意构图。然后根据边的权值大小排序,用Kruskal先求一遍最小生成树,再求一遍最大生成树。如果最小生成树和最大生成树之间存在fibonacci树,则说明能够成fibonacci树。这是因为如果

2015-04-24 20:45:25 1593

原创 HDU5194 DZY Loves Balls【排列组合】

题目大意:袋子里有N个黑球、M个白球。用1表示取出来的是黑球,0表示取出来的是白球。不放回的从袋子里取出这N+M个球。求相邻取出的两个球第一个球白球,第二个球是黑球的期望次数是多少,即出现"01"的期望次数是多少。思路:考虑期望可加。第i(1<=i<=N+M)个位置上出现白球的概率为M/(M+N),则i+1个位置上出现黑球的概率为N/(M+N-1)。因为白球只能在1~M+N-1个位置上出现(后边还有黑球)。所以出现"01"的次数为(M+n-1)次。则总的期望 = M/(M+N

2015-04-24 20:31:16 1243

原创 HDU2594 Simpsons’ Hidden Talents【KMP】

题目大意:给你两个串S1和S2,求既是S1的前缀同时是S2的后缀的最长字符串及长度。思路:KMP算法中Next[j] == k的实质是当前字母不匹配时,模式串的前k项(S0~Sk-1)和位置j前的k项(Sj-1-k~Sj-1)是相等的,这个k值是所有满足上面情况最大的。那么Next[len]的含义就是模式串的最长的前缀和后缀相等的串长度。利用Next[]的性质,先将串S2连接到S1后边。求S1的Next[]数组。那么,现在的Next[len]就是S1的前缀和S2的后缀最长的长度,这是当这个长

2015-04-22 21:50:43 745

原创 HDU1247 Hat’s Words【字典树】

题目大意:一个"hat's word"是一个单词,可以恰好由字典中其他两个单词连接得到(比如字典中是hat's和word)。给出字典中的单词,输出所有的hat's word。思路:建立字典树,将每个单词都插入到Trie树中,Count统计单词(不是前缀)出现次数。按顺序将每个单词所有可能的长度拆分成前缀单词和后缀单词,判断这两部分是否都在字典树中,是就是hat's word,进行输出,否则继续拆分当前单词或下一单词。

2015-04-22 11:45:28 909

原创 HDU1800 Flying to the Mars【字典树】

题目大意:有N个士兵。用不同的整数表示不同的级别。级别高的士兵可以教级别低的士兵,他们可以共用一把扫帚。一个士兵最多只能有一个学生或一个老师。问:最少需要几把扫帚。思路:对于士兵都不相同的士兵,只需要一把扫帚。那么问题转变为找出给出数理重复次数最多的个数。建立字典树,将每个数当作字符串插入字典树中,记录每个数出现的次数,最后找出重复出现次数的最大值即为所求。注意:04和4都表示4,插入的时候,应该清除掉前导零。

2015-04-22 10:38:30 951

原创 HDU1004 Let the Balloon Rise【字典树】

题目大意:ACM比赛要统计所有队伍最初哪道题的数量最多。给你N个代表气球颜色的字符串。输出出现次数最多的气球颜色。题目保证每组数据结果是唯一的。思路:有两种方法来做。1)可以用普通的二维字符串数组存放气球颜色,然后两重for循环求出每个气球的个数。用一个整型数组存放每个气球的个数。最后求出个数最多的气球,输出字符串。2)用字典树将所有的气球颜色字符串存起来,并统计字符串出现的次数。然后找到最多的气球字符串,进行输出。

2015-04-21 20:14:11 773

原创 POJ2185 Milking Grid【KMP】

题目大意:有一个N行M列的字符矩阵,这个字符矩阵可以由较小的矩阵重复平铺组成整个矩阵。问:最小的字符子矩阵的面积为多少。思路:对于长度为M的每一行s[i]来说,M-Next[M],M-Next[Next[M]],…都是能通过复制,完全覆盖字符串的可行串,而M-Next[M]是最小的。遍历每一行,求出对所有s[i]都可行的最小字符串长度,即每一行M-Next[M]的最小公倍数lcmn。再用类似的方法求出长度为N、对每一列都可行的最小字符串高度,即每一列N-Next[N]的最小公倍数lcmm。则

2015-04-21 19:49:14 1051 1

原创 poj3461 Oulipo【KMP】

题目大意:给一个字符串T,表示文章,再给一个字符串W,表示单词。T和W都只包含26个大写英文字母。现在计算单词W在文章T中出现的次数。W在T中出现的次数必须连续完全匹配,没两次匹配可能有重叠的部分。思路:先求出字符串W的Next[]指针,然后进行匹配,当一次匹配成功后,继续回退到Next[j]向后进行匹配,直到字符串T的末尾。此时,得到的匹配成功次数为所求,即W在T中出现的次数。

2015-04-21 10:41:03 929

原创 POJ2406 Power Strings【KMP】

题目大意:给定两个字符串a和b,定义a*b为两个字符串的链接。比如,a = "abc",b = "def",则a*b ="abcdef"。这个定义当作是多项式。则一个字符串的非负整数次幂可定义如下:a^0 = "",a^(n+1) = a*a^n。现在给你一个字符串s,求出最大的n,满足s = a^n(a为s的某个子串)。比如s = "aaaa",则n最大为4,a = "a",s = "a"^4。思路:对于给定的字符串s,最短的重复子串a是s[Next[len]] s[Next[len+1]

2015-04-21 10:21:48 687

原创 POJ2752 Seek the Name, Seek the Fame【KMP】

题目大意:给定一个字符串S,计算出所有可能的前缀-后缀字符串的长度。前缀-后缀字符串指的是S的子串不仅是S的前缀,还是S的后缀。比如S = "alala",前缀-后缀字符有{"a","ala","alala"}。思路:KMP算法的应用。在KMP算法中,当字符串匹配失败时,模式串的指针并没有指向0从头比较,而是指向了一个特定的位置,因为这个Next[j]指向的位置pos前长度为Next[pos]的子串,同模式串第j位前的长度为Next[j]的子串是相同的。为了找到既能做前缀又能做后缀的子串,纳

2015-04-21 09:26:58 693

原创 HDU2050 折线分割平面【递推】【计算几何】

题目大意:求N条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。思路:直线分割平面时,每增加N个结点,增加N+1个面。设f(N)是N条直线所能分成最多个面的个数。则f(N) = f(N-1) + N,且f(1)= 2,推得:f(N) = N*(N+1)/2+1。当N为折线节点时,L(N) = f(2*N) - 2*N。因为每增加1个折线,增加两个直线,这是f(2*N),每多1个顶点,比直线就少两个面,这是2*N。最后的结果为L(N

2015-04-21 08:44:21 1060

原创 HDU1051 Wooden Sticks【贪心】

题目大意:有N根木棍,每根木棍的长度和质量是已知的,机器要处理这N根木棍,处理时间和木棍的长度和权重有关。第一根木棍的处理时间为1min,之后处理的木棍如果长度大于等于前一根木棍的长度并且权重也大于等于前一根木棍的长度,就不需要处理时间;否则就需要1min的处理时间。问:最小的处理时间为多少。思路:贪心思想。先将木棍按长度从小到大排列,如果长度一致,则按权重从小到大排列。然后根据题目要求,如果后边的木棍长度和权重都大于前者,则不需要处理时间,否则加1min处理时间。

2015-04-18 14:02:23 946

原创 POJ2264 HDU1503 Advanced Fruits【LCS】

题目大意:两种水果可以杂交出一种新的水果,现在要给新水果起名字,起名的规则是:这个名字要包含之前两种水果的名字的字母,要按原本字符串中字符的相对顺序。并且这个名字要尽可能的短。思路:先求出两种水果名字s1和s2最长公共子序列的长度,并且用pre[i][j]标记下dp[i][j]的上一个状态,来得到每个字符在新的字符串中的状态。然后从(len1,len2)回溯输出新的字符串序列。pre[i][j] == 0表示为上一个字符为公共子串,将s1[i-1]或s2[j-1]输出一次,pre[i][j]

2015-04-18 10:53:01 1561

原创 POJ2506 Tiling【高精度】【递推】

题目大意:有一个大小2*N的矩形地板,用规格为2*2和2*1的瓷砖方块去填满它,共有多少种方案思路:设长度为N的矩形地板共有F[N]种方案。共有三种放法:先放一块2*2瓷砖方块,则F[N] = F[N-2]。先放两块横着的1*2的瓷砖,则F[N] = F[N-2]。先放一块竖着的2*1的瓷砖,则F[N] = F[N-1]。总和一下,就是:F[N] = F[N-1] + 2*F[N-2]。因为0 <= N <= 250,所以要用到高精度。用整型数组F[][]来计算,然后用字符型数组Fi[][

2015-04-18 09:54:40 959 1

原创 POJ2413 How many Fibs?【高精度】【二分】

题目大意:定义fibonacci数列前两项f[1] = 1,f[2] = 2。现在给你一个区间[a,b],a <= b <= 10^100。问:区间[a,b]之间有多少个fibonacci数。思路:a、b的规模很大,是个100位10进制的数。所以要用数组模拟大整数加法求fibonacci数列。用整型二维数组F[i][]表示第i个fibonacci数,因为从个位倒着存入数组方便进位,所以F[i][]数组中的数是倒着的。第480个fibonacci数是101位,先求出前480个fibonacci数

2015-04-18 09:40:29 1190

原创 POJ2394 Checking an Alibi【Dijkstra】

题目大意:有F个农场,标号为1~F。1号农场为谷仓。有C头奶牛在这些农场上,他们喜欢偷吃谷子,但是在偷吃谷子前M秒,有个摄像头会将它们的位置记录下来。各个农场之间有P条通路,并且知道这P条路的行走世间。如果奶牛可以在M秒之内赶到谷仓,就可以偷吃到谷子。问:有多少奶牛可以偷吃到谷子,并升序输出它们的序号。思路:最短路径问题。用Dijkstra算法求出1号谷仓到各个农场的最短时间,然后看奶牛所在的农场到谷仓的时间是否小于等于M,如果小于等于则存入结果数组ans[]中。

2015-04-16 21:06:56 954

原创 试除法整数分解 筛法整数分解 PollardRho大整数分解【模板】

试除法整数分解 筛法整数分解 PollardRho大整数分解【模板】

2015-04-16 18:15:19 1970

原创 矩阵快速幂【模板】

const int MAXN = 110;struct Matrax{ int m[MAXN][MAXN];}a,per;int N,M;void Init(){ for(int i = 0; i < N; ++i) for(int j = 0; j < N; ++j) { scanf("%d",&a.m[i]

2015-04-16 15:07:45 723

原创 整数快速幂【模板】

LL QuickMod(LL a,LL b,LL m) //a^b % m{ LL ans = 1%m; a %= m; while(b > 0) { if(b&1) ans = ans*a%m; a = a*a%m; b >>= 1; } return ans;}

2015-04-16 14:51:30 633

原创 欧拉函数【模板】

直接欧拉函数int Euler(int n) { int ret = n; for(int i = 2; i*i <= n; ++i) { if(n % i == 0) { n /= i; ret = ret - ret/i; }

2015-04-15 16:13:52 928 3

原创 同余方程[组] 乘法模逆元 中国剩余定理【模板】

扩展欧几里得,求一组解x,y,使得gcd(a,b) = d = a * x + b * y扩展欧几里得,求所有解x,y,使得c = a * x + b * y扩展欧几里得,求a关于n的逆元a^-1,使得a * a^-1 ≡ 1(mod n)扩展欧几里得,求解x,满足同余方程组x ≡ Ri(mod Ai)扩展欧几里得,求解x,满足高次同余方程A^x ≡ B(mod C)

2015-04-15 16:05:36 2746

原创 普通素数 筛法求素数 二次筛法求素数 MillerRabin素数测试【模板】

普通素数判断筛法求素数[1,N]二次筛法求素数[L,R]Miller素数测试方法

2015-04-15 13:11:02 2263

原创 字典树【模板】

struct TrieNode{ int Count; struct TrieNode* Next[26];}Tree,*Trie;TrieNode *root;void Create() //初始化{ root = new TrieNode; memset(root->Next,NULL,sizeof(root->Next)); root-

2015-04-15 10:07:46 858

原创 POJ2001 Shortest Prefixes【字典树】

题目大意:给一些字符串,求出每个字符串在这些字符串中能可以被唯一识别的最小前缀。思路:字典树的模板题,结构体中庸Count来存储字符前缀出现的次数,字典树中找到第一个Count为1的前缀时,该前缀就是被唯一识别的最小前缀。

2015-04-15 09:40:26 874 2

原创 POJ1423 HDU1018 Big Number【斯特林公式】【高精度】

题目大意:求N!有多少位。1<=N<=10^7。思路:N的规模很大。不能直接模拟求位数。先考虑这种做法:设A = N! = 1*2*3*4*…*N,那么位数就是(int)log10(A) + 1而(int)log10(A) = log10(1*2*3*…*N) = log10(1) * log10(2) * log10(3) * … * log10(N)这样累加起来就是结果了。不过因为N是10^7规模的,所以这样累加在HDU上可以AC,但是POJ上还是超时的。应该用斯特林公式来做。Sti

2015-04-14 18:22:19 1156

原创 HDU1274 展开字符串【栈】

题目大意:为了表示纺织CAD系统的纱线排列问题。用小写字母来表示不同的纱线,连接在一起表示纱线的组合。前边加数字表示重复多少次。比如2(abc),a、b、c表示不同的纱线,abc表示纱线组合,2+()表示abc重复两次,即abcabc。如果前边没有数字,则默认为1。现在给你一个这样的字符串,请将表达式展开输出排列结果。思路:使用栈操作,将字符串展开。重点在于去括号。1)如果遇到数字或是左括号,直接入栈。2)如果遇到字母,分两种情况: 栈顶元素为数字num,则将字母压入占中num次。 栈

2015-04-14 17:55:36 1423 1

Flask Web开发

本书共分三部分,全面介绍如何基于 Python 微框架 Flask 进行 Web 开发。 第一部分: Flask 简介,介绍使用 Flask 框架及扩展开发 Web 程序的必备基础知识 ; 第二部分:给出一个实例,真正带领大家一步步开发完整的博客和社交应用 Flasky, 从而将前述知识融会贯,付诸实践。 第三部分:介绍了发布应用之前必须考虑的事项,如单元测试策略、性能分析技术、Flask 程序的部署方 式等。

2018-05-29

2014年北大ACM暑期培训资料、讲义

北京大学的ACM国际大学生程序设计竞赛(ACM/ICPC)水平在国内处于领先地位,自2005年至2013年每年均参加总决赛,名次分别为11(铜牌)、13、14、13、20、14、13,13,13,13。北京大学多次承担ACM/ICPC亚洲区预选赛命题,广获好评。近几年负责命题的赛区有:2008年北京赛区,2009年宁波赛区,2010年杭州赛区,2010年福州赛区,2011年北京赛区,2011年福州赛区,2012年金华赛区,2012年杭州赛区。2013年杭州赛区。均由此课程主讲教师郭炜负责命题。北京大学的Online Judge --- POJ 更是国内最有影响力的ACM/ICPC竞赛训练平台之一,在国际上也有较高知名度和较多用户。

2014-08-12

空空如也

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

TA关注的人

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