2011年11月14日

真正的程序员,不应被语言束缚。

摘要: 自从大连Regional比赛结束之后,我就一直在思考一个问题,我该选择什么编程语言?我该选择什么编程环境?我该选择哪个方向?不停地思考,不停地买书,看书。。直到在成都regional比赛后又悲剧的拿了个铜牌。。。(明年我怎么着也得要银的啊T_T。。。。),看了C++Primer,看了absolute java,中途还简单看了一下C的多线程。。。最近在看thinking in java,思来想去,我始终难以决定选择哪个语言。到今天终于想通了,真正的coder,真正的牛人,不应局限于语言。语言有很多,每一种大都有他的用途。拿C++和java来说吧,不能说孰优孰劣,每个语言都有适合它的领域,亦如真正 阅读全文

posted @ 2011-11-14 21:24 Moon_1st 阅读(376) 评论(0) 推荐(0) 编辑

2011年9月17日

求前n个Catalan数的和mod m的值——可作为求a/b mod m的模版

摘要: #include <iostream>#include <string.h>#include <stdio.h>usingnamespace std;#define N 110typedef longlong lld;int n,m,p;int sm[N],sa[N];lld sum,res;void extgcd(int a, int b, int& x, int& y){ if (b ==0) { x=1; y=0; return; } extgcd(b, a % b, x, y); int t = x; x = y; y = t - a 阅读全文

posted @ 2011-09-17 20:48 Moon_1st 阅读(345) 评论(0) 推荐(0) 编辑

数论——Lucas定理模板

摘要: FormulationFor non-negative integersmandnand a primep, the followingcongruence relationholds:whereandare the basepexpansions ofmandnrespectively.#include <iostream>#include <cstdio>#include <cstring>usingnamespace std;typedef longlong llg;constint N =150000;llg n, m, p, fac[N];void 阅读全文

posted @ 2011-09-17 13:42 Moon_1st 阅读(3554) 评论(0) 推荐(0) 编辑

2011年9月16日

Codeforces Beta Round #87 (Div. 2 Only)

摘要: A:水题。。。模拟取最大。。。。B:由于保证了每个羊最多对应一只狼,所以直接扫描一遍判定就可以了,注意同一个狼别加两次= =。C:求所有树的最高树高。证明:每个树任意两层的节点肯定不能位于同一个集合,这样得出至少需要最高树高个集合,然后我们把所有的树画在一条线上,每一层对应一个集合,这样可以构造一个包含最高树高个集合的可行解,所以最少需要的集合数为最高树高。D:裸贪心。。注意那种没有weed的行的处理,开始写晕了,还在pretest 8上WA了一次,无奈之下果断重写了一次好了= =。A:View Code #include <iostream>#include <cstdio 阅读全文

posted @ 2011-09-16 13:06 Moon_1st 阅读(275) 评论(0) 推荐(0) 编辑

2011年9月12日

hdu4038——成都网络赛1008

摘要: 这两天跟1008过不去额。。。老是被一些2b类型的错误卡。。。。周六1008因为函数参数里一个long long的失误悲剧,周日的1008因为没有添加新生成的数到数组中一直WA。。。。这后台数据够强的~~思路:如果有奇数个负数,找出最大的那个,一直往上调,到0为止,然后把尽可能把0变成1,然后尽可能把1变成2,2->3.。。。到最后剩下的m求pow(3,m/3)然后填到数组里排序(注意,一定要填到数组里,否则后面的步骤可能出错,我就在这里WA了n次。。。),然后如果m%3还剩1的话,就把数组中最小的一个数加1(知道为什么前面那步要先填到数组里了吧,就是这。。。),否则最后的结果乘2。#i 阅读全文

posted @ 2011-09-12 00:52 Moon_1st 阅读(237) 评论(0) 推荐(0) 编辑

2011年9月10日

谈一下今天的网络赛。。。这次是真的弱爆了。。。。

摘要: 对于偶自己来说,比赛时。。。偶只会做4个。。。。1001:偶有幸遇到了师母= =,特判8个角,然后15数码逆序判定。。。1002:首先离散化,然后每种x,每种y都只需要覆盖一次就可以了,每个点也仅会覆盖一次,查x和y时二分一下就可以了。。。O(N+N+N)。。1003:gsb童鞋搞的= =。1006:不就是个哈密尔顿回路么。。。处理可能要麻烦一点点,没时间写了。。。1007:线段树啊~开方运算使数字下降的很快,下降到1或者数字是0以后就不用再下降了,开个布尔数组标记一下就行~1008:奶奶个熊,今天的比赛就吊死在这题上边了。。。一直在用搜索+剪枝做,然后就一直TLE,到最后一算,我擦,所有的最 阅读全文

posted @ 2011-09-10 21:54 Moon_1st 阅读(323) 评论(0) 推荐(0) 编辑

2011年8月29日

hdu3870——平面图最小割

摘要: 2008OI论文原题~周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》可以转化为最短路径问题~方法讲的很详细,就不再写了~注意这种方法只能针对s, t在平面图最外层边上的情况~View Code #include <iostream>#include <cstdio>#include <cstring>#include <queue>usingnamespace std;constint N =405;struct node{ int u, v, w;}e[(2*N*N+4*N)*2];int n, s, t, tot, h[N*N], 阅读全文

posted @ 2011-08-29 23:04 Moon_1st 阅读(485) 评论(0) 推荐(0) 编辑

2011年8月24日

Codeforces Beta Round #83 DIV2

摘要: 这一晚上。。。板子硬了点,睡的不太舒服,等会儿回宿舍补一觉~在ID之间纠结了一阵子后,偶还是决定沿用Moon_1st这个ID,偶滴品牌不能丢了~ ^_^。A:单纯模拟的~B:刚开始想麻烦了,直观的想法是先排一下序,然后比较所有相邻且不同的数对,如果a(i+1)<=2*ai,那么必然输出Yes,由于(2^ai-1)^2 = 2^(2*ai)-2^(ai+1)+1,偶一直在考虑2^(ai+1)是否会对结果产生不利影响,不大容易看~但是从小case逐步增加的具体过程发现,除了ai==1的请况有影响外,其他的影响会随着ai的增大逐步递减,也就是没有影响。所以排序后直接判断相邻且不相等的数对就可以 阅读全文

posted @ 2011-08-24 21:23 Moon_1st 阅读(403) 评论(0) 推荐(0) 编辑

2011年8月17日

图论/二分图最优匹配

摘要: 有一段时间没写KM了,复习一下,别不会写啦。。二分图最优匹配一般是指的最大权匹配和最小权匹配,两者都可以用KM算法求解。关于KM算法的资料,可以在百度百科中找到:http://baike.baidu.com/view/739278.htm这里介绍的是最大权匹配,而最小权匹配和最大权匹配相对,有两种写法:第一种是在建图的时候将所有边的权值取反,求出最大权匹配后将权值取反。第二种是在建图的时候将顶标lx[]和ly[]的意义稍微改一下,将lx取成所有相连的边中权值最小的,ly初始化为0不变,然后更新lx[]值时加lack,而ly[]减lack。这一点和最小费用流-最大费用流有点相似,求最小费用流时用 阅读全文

posted @ 2011-08-17 09:11 Moon_1st 阅读(2589) 评论(0) 推荐(0) 编辑

2011年8月15日

图论/最小支配集

摘要: 听大师们说。。。普通无向图最小支配集。。甚至二分图的最小支配集求解都是NP难度的。。。不过树形结构比较好求解,这个嘛,原因很简单啦,树本身是递归结构,比较容易dp嘛~pku3659:裸的,求树的最小支配集。令:dp[u][0] = 以u为根,且在节点u放个发射塔所需要的最少发射塔总数。dp[u][1] = u靠父节点覆盖。。。。dp[u][2] = u靠子节点覆盖。。。。则dp[u][0] = sigma{min{dp[v][0], min(dp[v][1], dp[v][2])}}+1,dp[u][1] = sigma{min{dp[v][0], dp[v][1]}},如果u的某个子节点dp 阅读全文

posted @ 2011-08-15 17:18 Moon_1st 阅读(2633) 评论(0) 推荐(0) 编辑

导航