pku(1129)Channel Allocation

m-最优着色问题。 我比较的菜做法是枚举了1~m然后得到答案的。 #include <iostream>#include <string>using namespace std;int a[27][27];int x[27];int n;void Next(int k,int m){ do { int j; x[k]=(x[k]+1)%(m+1); if(!x[k]) return ; for( j=1;j<k;j++) { if(a[k][j]&amp;&amp;x[k]==x[j]) break; } if(j==k) return ; ...
默认分类 | 2008-06-05 15:14 | 阅读 6646 次 | 评论 0 条

pku(1141) Brackets Sequence

使用的dp,主要的难度来自于对串的储存,很经典的dp,可以参看黑素115夜 感谢stl,还是很方便的东西 #include <iostream>#include <string>using namespace std;string ans[110][110];string s;int d[110][110]={0};bool index[110][110]={0};int bb(int f,int e){ if(index[f][e]) return d[f][e]; else if(f&amp;gt;e) {return 0;} else if (f==e)...
默认分类 | 2008-06-04 22:32 | 阅读 9187 次 | 评论 0 条

astar大赛

今年和去年相比,我觉得自己已经进步很多了, 去年的这个时候自己甚至连stl都不会使用,第一次看到astar的题目的时候,发现有中文字符串,就直接蒙了 今年的题目貌似比去年的还要困难。 第一天的比赛,睡过了一个小时,起来后,就开始过题,第一题很快的就耍过了。 但是第二题,貌似在做了哈希之后加了LCS,我自己都佩服当时自己是咋想的,下来就发现自己错了。 没关系还有第二天。 结果的二天又睡过半个小时 做得比第一天还要wa,估计今年的百度之星就这么结束了……
成长之路 | 2008-06-04 18:54 | 阅读 4518 次 | 评论 9 条

地震之后

首先,为5.12大地震的死难者祈福 汶川的大地震时,成都的震感非常的强烈,当时我在教学楼的四楼等着上,英语诗歌鉴赏,突然楼面就摇了起来。 天花板上开始往下面掉,然后某某反应快的说:&quot;地震了,快跑……&quot;,接着,狂奔………… 接下来的两天: 在操场待了两天…… 等稳定下一点后就开始回宿舍睡觉 随后的一周是什么事情都没干~ 生活似乎停下来了,去市区唯一的高架桥危了,天天就只有呆在学校,很无聊的过了一周。 慢慢的了解到,这次地震的严重性~ 想着去给需要帮助的人做点事情 捐钱,志愿者,等等……...
杂谈 | 2008-06-04 18:39 | 阅读 3222 次 | 评论 0 条

[转]n问题皇后构造解法

n*n的棋盘,放n个皇后,互不攻击 一、当n%6 != 2 且 n%6 != 3时,有一个解为: 2,4,6,8,...,n, 1,3,5,7,...,n-1 (n为偶数) 2,4,6,8,...,n-1, 1,3,5,7,...,n (n为奇数) (上面序列第i个数为ai,表示在第i行ai列放一个皇后;... 省略的序列中,相邻两数以2递增。下同)二、当n%6 == 2 或 n%6 == 3时, (当n为偶数,k=n/2;当n为奇数,k=(n-1)/2) k,k+2,k+4,...,n,-2,4,...,k-2,-k+3,k+5,...,n-1,-1,3,5...
数据结构 | 2008-04-28 13:49 | 阅读 1854 次 | 评论 0 条

pku(2305) Basic remains

就是求各种进制下求mod; m没有超给过long int 的界限,所以可以直接装换成long int 行 但是p很大。 我的方法是把每一位提出来求mod, 比如输入为2 11001 1000 变成(1*2^4modm+1*2^3modm+1modm)mod m 代码: #include <iostream>#include <math.h>using namespace std;__int64 mod(__int64 a,__int64 b){return (a%b+b)%b;}__int64 ctoi(char *a,int bb){ __int64 ans...
acm | 2008-04-26 16:32 | 阅读 3111 次 | 评论 0 条

(pku3327) city horizontal

这题的数量过大,我能想到的就只有离散化。 然后我试着从左到右的直接算出来,很不幸超时。 最后在万般无赖的情况下,只好使用线段树来构造。 开始的时候我还想本着优化程序的原则,没有把线段树当作树状数组来使用,但是很不幸的是错了很久我都不知道为什么。 后来发现了以后,直接把每个都下到最底层(本来还是有优化的,但是废去了一个晚上,我也就不想什么有化不优化的了) 哎~~~~~~ 代码写得非常的有问题,没有严格测试过,慎用!!! #include<cstdio>#include<cstring>#include<algorithm>#include<iostre...
acm | 2008-04-17 23:11 | 阅读 2388 次 | 评论 0 条

pku(1113)wall

这道题是典型的凸包题 关于凸包的算法可以去http://baike.baidu.com/view/707209.htm这里看到。 题目的意思就是求凸包周长再加上一个圆的面积. 这到题让我知道了,原来排序是sort()和qsort()都是不稳定的,为此我wa了很多次。 最后还是做出来,不容易啊。 代码: #include <iostream>#include <algorithm>#include <vector>#include <math.h>#define pi 3.141592653589using namespace std;typ...
acm | 2008-04-12 11:23 | 阅读 3037 次 | 评论 0 条

pku(2352)Stars

2352 Stars xiedi.rar(204 KB) 这道题我是用的线段树的特例,点数来完成的,算法可以看附件中,谢迪大牛的PPT。 源代码: #include <iostream>using namespace std;typedef struct Node{ int l,r; int count;}node;class PointTree //点数类{ private: node p[1<<18]; public: void init_tree(int l,int r...
acm | 2008-04-10 19:36 | 阅读 5324 次 | 评论 0 条

线段树和点树

线段树用于实现动态删除和插入某一线段的操作,进行扩张后可以求一个点在多少个线段上,线段一共有多长,求出线段的覆盖,等操作。 以下是来自http://hi.baidu.com/alpc62/blog/item/469edeca0043e382c8176875.html的blog, 要查看原文可以到他那里去看。 举例说明:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次 在[0,7]区间上建立一棵满二叉树:(为了和已知线段区别,用【】表示线段树中的线段) 【...
数据结构 | 2008-04-10 16:39 | 阅读 7064 次 | 评论 0 条

面向对象c++——三角形求周长和面积

这几天放假耍了几天,没有ACM题可贴,就只有贴作业了,很水的作品请指教 源代码: /*************************************** c++编程题 定义一个三角形类求三角形面积和周长 keloy 2008.4.7****************************************/#include <iostream>#include <math.h>using namespace std;class Ctriangle ...
数据结构 | 2008-04-08 15:18 | 阅读 11080 次 | 评论 0 条

pku(1915)Knight Moves

广度搜素,用链表写的,代码很差,时间也很慢。不知道还有什么好方法,貌似是有的,有人用0ms过了。 #include <iostream>int chess[301][301]={0};using namespace std;typedef struct bound{ int x; int y; int count; struct bound *next; }Set;int main(){ int n; cin >>n; while(n--) { int l...
acm | 2008-04-03 20:50 | 阅读 4029 次 | 评论 0 条

pku(1702)Eva's Balance

这是一道不错的数学题,开始的时候就只想到于三进制有关系,由于还有一个最优化的问题……开始还以为需要用到深搜的策略。 但是正确的解法却也是因为三进制才没有使用深搜的策略。 以三进制表示一个数: 1.如果数位上为1,则应该在右侧放上一个权值。 2.如果数位上为2,则该在左侧放上一个权值。 3.如果位数上为0,则什么都不需要做。 源代码: #include <iostream>#include <vector>#include <math.h>using namespace std;int main(){ int n; cin ...
acm | 2008-04-01 12:02 | 阅读 2797 次 | 评论 0 条

pku(1032)Parliament

贴道值得研究的题吧,虽然有人给出了解法,也总结出很多规律,可还是没有看到很好的证明 大意是把整数N分成不相等的任意个整数,使这些数乘积最大 有人总结了一些规律: 1.1<a1if a1=1, then a1(=1), a[t] together could be replaced by a[t]+1.reason: a[t]+1>a[t]*1 ----------------------------------------------------------------------------------------2.to all i, 1<=a[i+1]-a[i]...
acm | 2008-03-31 13:47 | 阅读 3719 次 | 评论 0 条

pku(2361)Tic Tac Toe

给提示 XXX XXX OOO XOO OO. X.X XOO O. . X.. yes no yes 就这么点要注意的: #include <iostream>char winner[9];char toe[3][3];int X,O;int legal;using namespace std;bool islegall(){ legal=0; if((X!=O+1)&amp;&amp;(X!=O)...
acm | 2008-03-29 10:39 | 阅读 1779 次 | 评论 0 条

面向对象c++——回文数

用面向对象写的回文数: 请大家指教: #include <iostream>#include <vector>using namespace std;class Panlindrome{ private: vector < char > t; int len; public: void Init_panlindrome() { char temp; this->len=0; while(cin >>temp&amp;&amp;temp!='@') { this->t.push_back(temp); this->len++; ...
数据结构 | 2008-03-27 20:02 | 阅读 3832 次 | 评论 3 条

pku(2406)Power Strings

用到了KMP的一些思想,主要就是求next[]函数 Problem: 2406 User: keloy Memory: 28648K Time: 282MS Language: C++ Result: Accepted Source Code #include <iostream> #include <string> using namespace std; string t; int Getnext() { int n=t.size(); int *next=new int[n+1]; int i=...
acm | 2008-03-27 17:08 | 阅读 2503 次 | 评论 1 条

pku(1328) Radar Installation

主要的思想是贪心, 用d做半径,小岛的点做圆心,圆和x轴上相交得到的区间就是可以包含这个小岛的radar,可以存在的位子。 排序,找到最多重叠点或区间,得到答案。 数据里头很变态,有d为负的情况。 在qsort的时候要注意因为用的是浮点数。 我是在wa了很多次之后终于过了…… #include <iostream>#include<math.h>#include<algorithm>using namespace std; typedef struct sea{ int x; int y;} Sea;typedef struct Radar{ ...
acm | 2008-03-25 23:24 | 阅读 4849 次 | 评论 0 条

pku(1157)LITTLE SHOP OF FLOWERS

动态规划: 不要想当然的以为最小值就是0,(o(∩_∩)o...)我就是这么wa了一次。 代码: #include <iostream>using namespace std;long sum[101]={0};long tempsum[101]={0};long bunch[101][101]={0};long max(int i, int j)//求最大值{ long temp=-2147483648; for(int s=i;s<=j;s++) { if(sum[s]>temp) temp=sum[s]; } return temp;}void...
acm | 2008-03-14 13:49 | 阅读 2317 次 | 评论 0 条

自己的第一个项目

前几天acm队教练说有项目问我做不做,我说好啊…… 很哀怨的事情就发生了………… 我拿到计划书之后才知道,我上当了。做的是一个软件外包的活,结果我就拿到了代码,其他什么东西都没拿到,甚至连接口说明都没有。接下来的几天真实哀怨了哦………… 不过还好今天很哀怨,已经把最哀怨的部分完成了……
杂谈 | 2008-03-12 19:46 | 阅读 2347 次 | 评论 2 条
浏览255638次