- 博客(33)
- 资源 (36)
- 收藏
- 关注
原创 poj3366
<br /><br />#include<iostream><br />using namespace std;<br />//水题,本来想用stl水一下的,就这样吧<br />char a[50][30],b[50][30];<br />char s[30];<br />int main()<br />{<br />int l,n,i;<br />scanf("%d %d",&l,&n);<br />for(i=0;i<l;i++)<br />scanf("%s %s",a[i],b[i]);<br />
2010-07-31 23:26:00 531
原创 poj1317
<br /><br />//水题一道,我发现C++里面随时定义的变量只能当使用,后面还得再定,但是如果这样编译器又报错,还是定义成公共变量的好……<br />#include<iostream><br />using namespace std;<br />//这题目就根据题目的那个表达式就行了,直接做逆运算,注意有一个取余<br />//如果得到的结果大于那个模,那么直接取余就行了<br />int main()<br />{<br />int key,i;<br />char s[100];<br />
2010-07-31 21:33:00 648
原创 poj2752
<br /><br />#include<iostream><br />using namespace std;<br />//这道题目主要考你KMP算法的next数组的用法<br />//只有深刻的理解了,才能明白<br />char s[400001];<br />int next[400001];<br />int res[400001],n;<br />/*举个例子啊:<br />//就如题目中的例子原串=ababcababababcabab,next=0 1 1 2 3 1 2 3 4 5 4 5
2010-07-31 20:58:00 1731
原创 poj1666
<br /><br />//暴力……<br />#include<iostream><br />using namespace std;<br /> <br />int a[1000];<br />int main()<br />{<br />int n,i,cnt,tmp,tt;<br />while(scanf("%d",&n),n)<br />{<br />cnt=0;<br />for(i=0;i<n;i++)<br />scanf("%d",&a[i]);<br />while(1)<br />{
2010-07-30 22:21:00 572
原创 poj1989
<br /><br /><br />//这道题目其实和那个做组合题目的时候差不多就是无论几位<br />//至少每一位都要出现过所有的数才能满足出现过所有的组合<br />//经典啊<br />#include<iostream><br />using namespace std;<br />bool flag[10001];<br />int main()<br />{<br />int n,k,m,cnt=0,num=0;<br />scanf("%d%d",&n,&k);<br />while(n--
2010-07-30 18:12:00 749
原创 poj1411
<br /><br />#include<iostream><br />#include<cmath><br />using namespace std;<br />//这道题目就是简单的暴力,但是还是有方法的。<br />const int M = 100000;<br />int p[10000], pNum=0;<br />bool f[M];<br />void Prime()//打出100000以内的素数表<br />{<br />int i, j;<br />for(i = 2; i < M;
2010-07-30 17:10:00 734
原创 poj2823
<br /><br />//优先队列读入的是id,但是是按照id对应的数排完序的<br />#include<iostream><br />#include<vector><br />#include<queue><br />using namespace std;<br />int a[1000000];<br />int aa[1000000];<br />int bb[1000000];<br />int n,s;<br />//这次让我见识到了队列的另外比较高级一点的用法,还可以这样用,第一次见到啊
2010-07-30 15:26:00 1185 1
原创 poj2681
<br />//今天怎么做么多水题啊……<br />#include<iostream><br />using namespace std;<br />int a[26],b[26];<br />char s1[60],s2[60];<br />int main()<br />{<br /> int n,cnt=0,i;<br /> scanf("%d",&n);<br /> getchar();<br /> while(n--)<br /> {<br /> memset(a,0,sizeof(a));<
2010-07-29 19:41:00 546
原创 poj3620
<br />//这题就是一个简单的深搜,感觉还可以,写一遍直接A<br />#include<iostream><br />#define M 110<br />using namespace std;<br />int a[M][M];<br />int b[4][2]={-1,0,1,0,0,1,0,-1};<br />int used[M][M];<br />int n,m,num=0;<br />int dfs(int p,int q)<br />{<br /> int i,x,y;<br /> u
2010-07-29 19:25:00 946
原创 poj1597
<br />//本题就是一个求最大公约数的问题,其他没什么。水<br />#include<stdio.h><br />int Gcd(int a,int b)<br />{<br /> if(b==0)<br /> return a;<br /> else<br /> return Gcd(b,a%b);<br />}<br />int main()<br />{<br /> int m,n;<br /> while(scanf("%d%d",&m,&n)!=EOF)<br /> {<br /> i
2010-07-29 17:28:00 455
原创 poj2499
<br />#include<stdio.h><br />//这道题目用除法代替减法。<br />//大的不停的减去小的,实际上就是减去大的除以小的的商,不过如果除尽的话,就让次数减1<br />//因为最后结果不是0 0 而是1 1 <br />//如果里面有一个是1,那么就可以结束了,因为前面的都是一种操作,要么一直<br />//左,要么一直右,所以直接跳出循环即可。挺有意思的。<br />void solve(int m,int n)<br />{<br /> int l=0,r=0;<br />
2010-07-29 17:09:00 1178
原创 poj2001
<br />//简单的trie开始理解错误,我以为是要找在输入的单词里面最短的前缀,谁知道是唯一能识别这个单词的前缀。<br />//最可恨的是开始的时候我的cnt是bool型的一直没有改正过来,一直到最后,才知道什么地方错了,bsbsbs……<br />#include<iostream><br />using namespace std;<br />struct Trie<br />{<br /> int cnt;<br /> Trie *p[26];<br />}*root;<br />char a[
2010-07-29 15:21:00 1751
原创 poj2092
<br /><br />//题目很水,就是求出现次数为第二大的有多少个,输出来就OK<br />#include<iostream><br />using namespace std;<br /> <br />int main()<br />{<br />int a[10001];<br />int m,n,i,j,b,Max;<br />while(scanf("%d%d",&m,&n),m||n)<br />{<br />Max=0;<br />memset(a,0,sizeof(a));<br />f
2010-07-29 13:42:00 1158
原创 poj1350
<br />//此题比较简单,只是要注意细节,如不是四位的一定要输出No,注意NO和OK都是首字母大写,后面是小写,这个搞得我wa了一次。<br />#include<iostream><br />#include<algorithm><br />using namespace std;<br />int Do(int m)<br />{<br /> int a[10],i,j,p,q,cnt=0;<br /> while(m)<br /> {<br /> a[cnt++]=m%10;<br /> m/
2010-07-28 16:53:00 1045
原创 poj1020
<br /> <br />#include<iostream><br />using namespace std;<br />int b[41],c[11],s,n;<br />bool flag;<br />//这个题目很巧妙,问题是能否刚好切完,现在反向思考,能否填满<br />//这个搜索想的好,从上到下,从左到右,也就是每次找最可能填的地方,有点贪心的意思<br />//<br />void dfs(int a)<br />{<br />int pos,i,j,lit=41;<br />bool f
2010-07-28 15:21:00 867
原创 poj2545
<br />//一个暴力的题目让我做了将近一个半小时,郁闷啊……<br />//开始算法不对,开始我以为只需要找但个数的次幂和当前数与三个质数的乘积最小值就行了,后来分析一下错了<br />//只能暴力了,直接从后向前一个一个分别和三个数乘找出最小的,但是wa了,后来终于明白我的min太小了,至少要设到2^60次方,<br />//16进制要15个f,小了就会错误。谨记。<br /><br />#include<stdio.h><br /> <br />__int64 Min(__int64 a,__int
2010-07-28 09:52:00 617
原创 poj2513
<br />//这道题目是trie+欧拉回路+并查集<br />#include<iostream><br />#include<cstdio><br />using namespace std;<br />//第一道trie树,主要是数据结构<br />struct Node<br />{<br /> bool flag;//标记是否是单词<br /> int id;//第几个词<br /> Node *p[26];//26个分支<br />}*root;//根节点<br />int cnt;<br />
2010-07-27 23:27:00 885
原创 poj1325
这道题目虽然A了感觉还是有问题,为什么我把00设成1的时候,把总数减去1 答案却错了呢?反而在建图的时候把所有0的情况省去就对了。不解………………#include#include#includeint map[105][105];int link[105],used[105];int m,n,cnt;int path(int u){ int i; for(i=0;i { if(map[u][i]&&!used[i]) { used[i]=1; if(link[i]==-1||path(link[
2010-07-27 20:52:00 1040 1
原创 poj1063
//这道题虽然做出来了,但是不懂为什么是这个公式,求解答。//为何是奇数就一定是yes,偶数的时候,当奇数位和偶数位上的白棋的个数相差小于2的时候也是yes否则就是no#include#includeint main(){ int even,odd; int t,n,a,i; scanf("%d",&t); while(t--) { even=0; odd=0; scanf("%d",&n); for(i=1;i { scanf("%d",&a); if(i%2==1&&a==0)
2010-07-27 17:53:00 711
原创 poj1149
<br />//这道题目是一个网络流的题目,这道题让我领会到了,网络流关键在建图,图建好了,什么都解决了<br />//<br />#include<iostream><br />#include<cstdio><br />#include<queue><br />using namespace std;<br />int K[1010],pre[1100];<br />int Map[110][110];<br />int flow[110];<br />int used[1010];<br />int
2010-07-27 16:51:00 661
原创 poj2833
<br /><br />stl优先队列,保持两个优先队列一个存大树一个是小数<br />#include<iostream><br />#include<queue><br />using namespace std;<br /> <br />priority_queue<int>big,little;<br /> <br />int main()<br />{<br />__int64 sum;<br />int a,i,p;<br />int n1,n2,n;<br />while(1)<br />{<
2010-07-27 12:25:00 479
原创 poj2528
<br /> <br />//此题是离散化加线段树。由于点范围较大,所以要离散化,本题由于有些敏感变量一直TLE,不知道为什么<br />#include<iostream><br />#include<algorithm><br />#include<cstdio><br />using namespace std;<br /> <br />struct Tree<br />{<br />int l,r;<br />int col;<br />}a[100050];<br />int used[20010
2010-07-26 09:56:00 1652
转载 poj2186
<br /><br />//学习啊……原来id【i】==1的就是出度为0的。<br /> <br />以前没有把强连通tarjan搞懂,上午看了下,终于理解过程了,递归之经典。<br /> 然后去做2186, 其实开始的时候对缩点后的算法不是很清楚,关键在于:最后的答案就等于唯一一个出度为0的强连通分支内的顶点数,关键在于这个唯一!当不止一个强连通分支的出度为0的时候,因为其中任意2个强连通分支之间没连通,所以不可能存在一个牛被其他所有牛崇拜。<br />于是,最后一步在于找有几个强
2010-07-20 20:04:00 1065
原创 poj2560
//prim最小生成树直接prim算法,写了这么多了还是没背下来啊 ……#include#include#include#include#define Max 110#define inf 100000000float map[Max][Max],d[Max],point[Max][2],sum;int used[Max],n;float dis(float a,float b,float c,float d){ return sqrt((c-a)*(c-a)+(d-
2010-07-18 14:12:00 689
原创 poj2612
<br /><br />虽然是水题还是有点技巧的<br />#include<stdio.h><br />#include<string.h><br />#include<stdlib.h><br /> <br />char a[15][15],b[15][15];<br />int c[15][15];<br /> <br />int main()<br />{<br />int i,j,cnt,n,flag=0;<br />scanf("%d",&n);<br />for(i=1;i<=n;i++)<b
2010-07-18 12:55:00 644
原创 poj2084
<br /><br />注意类名一定为Main否则会出错<br />package com.friendy.awt.eve;<br />import java.io.*;<br />import java.math.*;<br />import java.util.*;<br /> <br />public class Main {<br /> <br />/**<br /> * @param args<br /> */<br />public static void main(String[] args)
2010-07-18 03:30:00 488
原创 poj3627
<br /><br />水啊……<br />#include<iostream><br />#include<algorithm><br />using namespace std;<br /> <br />int num[20001];<br />int main()<br />{<br />int N,B;<br />int i,cnt=0;<br />scanf("%d%d",&N,&B);<br />for(i=0;i<N;i++)<br />{<br />scanf("%d",&num[i]);<
2010-07-18 02:02:00 620
原创 poj2181
//贪心很有技巧行啊。没想到#include#includeint main(){int n,a[150001];int i,j,k;int t,sum;while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));for(i=0;iscanf("%d",&a[i]);sum=0;k=1; for(i=0;i{if(k%2==1)//奇数的时候,加上最大的那个{if(a[i]sum+=a[i];k++; }else if(k%2==0)//偶数的时候减去最小的{if(a[
2010-07-18 01:25:00 690
原创 poj1195
<br />这道题目看了网上的二维数组懂了,但是我自己写的把而未转化为一维为什么就不对呢?求高手指教啊<br /> <br /><br />#include<iostream><br />//#include<vector><br />using namespace std;<br /> <br />int V[1024*1024];<br />int S,A,B,L,R,T,X,Y;<br /> <br />int lowbit(int x)<br />{<br />return x&(x^(x-1));
2010-07-17 03:28:00 683
原创 poj 3624
<br /><br />1A 感觉数据有点弱,这题很明显01背包,但是复杂度是o(nm)将近10^7而给了1s时间,但是还是写写试试,结果230+ms,数据有点弱,算法很简单就是01背包问题。<br /> <br />#include<stdio.h><br />#include<string.h><br />#include<stdlib.h><br /> <br />int f[12881],a[3402][2];<br />int n,m,ans;<br /> <br />void dp()<br /
2010-07-17 00:45:00 879
原创 sudo
<br /><br />//自己写了一个数独,刚好和poj的2676<br />#include<stdio.h><br /> <br />char ch[10];<br />int sudo[9][9];<br />int judge(int p)<br />{<br />int i,j,x,y;<br />x=p/9;<br />y=p%9;<br /> <br />for(i=x/3*3;i<x/3*3+3;i++)<br />{<br />for(j=y/3*3;j<y/3*3+3;j++)<br
2010-07-17 00:13:00 387
原创 poj 1459
这道题是典型的最大流的问题,而我也只会EK算法,其他的不太懂,但是EK算法用不好就会超时。开始用STL输入用cin,但是TLE,改成数组和合scanf以后还是超时,后来我发现,一个浪费时间的df,下面我已经注释。其实EK基本上可以满足你做网络流。#include#includeusing namespace std;#define MIN(a,b) a#define M 110int start,end;int n,np,nc,m;int net[M][M];int path[M*M];int add;vo
2010-07-16 17:51:00 621
原创 poj2777
<br /><br />本题是典型的线段树的题目,由于颜色的数目较少,所以只使用一个整形变量来表示。<br /> <br />#include<iostream><br />using namespace std;<br /> <br />struct node//结构<br />{<br />int l,r;//左右子树<br />int col;//颜色<br />}a[1000000];<br />int L,T,O;<br />int cnt;<br /> <br />inline bool sin
2010-07-15 15:58:00 738
Csr_bluetooth_driver技术文档
2011-07-22
蓝牙HCI驱动开发中的BCSP和bccmd协议
2011-07-22
pojcodefor(3000-3799)
2011-04-21
pojcodefor(2000-2999)
2011-04-21
pojcodefor(1200-1999)
2011-04-21
pojcodefor(1100-1199)
2011-04-21
pojcodefor(1000-1099)
2011-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人