摘要: http://poj.org/problem?id=2002题意:给出n组坐标,判断这些坐标能组成的正方形的个数。思路:参考某大神的想法,先枚举两个点,然后利用公式表示出另外两个点,判断这两个点是否在这n组坐标中,其中查找另两个坐标用的set容器。已知 (x1,y1)(x2,y2);则:x3 = x1+(y1-y2); y3 = y1 -(x1-x2); x4 = x2 +(y1-y2);y4 = y2 -(x1-x2);或:x3 = x1 -(y1-y2);y3 = y1+(x1-x2); x4 = x2 -(y1-y2);y4 = y2 +(x1-x2); 1 #include 2 ... 阅读全文
posted @ 2013-08-22 10:14 N_ll 阅读(334) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2418题意:给定一系列字符串,要求按字典序升序输出每个串,并输出每个串出现的百分比。用map做的,交c++A了,G++ WA。。so sad。。后来发现是输出格式写错了,现在改过来了。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 int main() 10 { 11 char s[102]; 12 ... 阅读全文
posted @ 2013-08-21 20:03 N_ll 阅读(246) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2230题意:给出n个field及m个连接field的边,然后要求遍历每条边仅且2次,求出一条路径来。 1 #include 2 #include 3 const int maxn = 10010; 4 const int maxm = 2*50005; 5 int head[maxn],vis[maxm]; 6 struct node 7 { 8 int u; 9 int v;10 int next;11 } edge[maxm];12 int n,m,cnt;13 void init()14 {15 m... 阅读全文
posted @ 2013-08-21 17:09 N_ll 阅读(162) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1386题意:给定若干个单词,若前一个的尾字母和后一个单词的首字母相同,则这两个单词可以连接,问是否所有的单词都能连接起来。思路:欧拉路的判断,且为有向图,将每个单词的首尾字母看做节点,中间字母看做边,建图。(1)用并查集判断图是否连通。(2)判断奇数节点的个数为0或2个,其余节点均入度=出度。 1 #include 2 #include 3 const int N=1010; 4 const int M=28; 5 int in[M]; 6 int out[M]; 7 int f[M],vis[M]; 8 void init() 9 {.. 阅读全文
posted @ 2013-08-21 16:34 N_ll 阅读(228) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2513题意:给一些木棒,木棒两端图上颜色,将端点颜色相同的木棒连在一起,问是否能连成一条直线。思路:将两端的颜色看成点,将木棒看成边,判断是否构成欧拉路。欧拉路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次,称这条回路为欧拉回路。具有欧拉回路的图成为欧拉图。判断欧拉路是否存在的方法有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是出度=入度。无向图:图连通,只有两个顶点是奇数度,其余都是偶数度的。判断欧拉回路是否存在的方法有向图:图连通,所有的顶点出度=入度 阅读全文
posted @ 2013-08-21 15:24 N_ll 阅读(312) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2442题意:给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列,让你求出序列和最小的前n个序列的序列和。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int N=2002; 8 9 int main()10 {11 int T,m,n,arr1[N],arr2[N];12 priority_queue,less >q;13 scanf("%d",... 阅读全文
posted @ 2013-08-20 11:04 N_ll 阅读(230) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2151看的题解。。表示没看懂状态转移方程。。#include#includeint m,t,n;double dp[1002][32][32],p[1002][32],tt[1002][32];int main(){ int i,j,k; while(~scanf("%d%d%d",&m,&t,&n)) { if (!m && !t && !n) break; memset(dp,0.0,sizeof(dp)); memset(tt,0.0,sizeof(tt... 阅读全文
posted @ 2013-08-19 21:05 N_ll 阅读(207) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2299此题即为归并排序求逆序数。 1 #include 2 #include 3 const int N=500002; 4 int a[N],temp[N]; 5 long long ans; 6 void merge_arr(int first,int mid,int last)//合并区间 7 { 8 int k = 0; 9 int i = first,n = mid;10 int j = mid+1,m = last;11 while(i 2 #include 3 #include 4 us... 阅读全文
posted @ 2013-08-19 18:59 N_ll 阅读(239) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3080寻找最长公共子串。。暴搜的。。 1 #include 2 #include 3 int main() 4 { 5 int t,n; 6 char s[12][62],ss[62],str[62]; 7 scanf("%d",&t); 8 while(t--) 9 {10 scanf("%d%*c",&n);11 int i,j,k;12 for (i = 0; i max_len)32 {33 ... 阅读全文
posted @ 2013-08-19 16:42 N_ll 阅读(172) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1035题意:给定一个单词判断其是否在字典中,若存在输出"%s is correct",否则判断该单词删掉一个字母,或增加一个字母,或替换一个字母后是否存在于字典中。 1 #include 2 #include 3 int deal(char *s1,char *s2) 4 { 5 int i = 0; 6 int len1 = strlen(s1); 7 int len2 = strlen(s2); 8 if(len1==len2)//替换 9 {10 while(i < len1 &... 阅读全文
posted @ 2013-08-19 15:19 N_ll 阅读(179) 评论(0) 推荐(0)