原创 poj百練 1002

一開始我沒看清題目要求的輸出是字符串按升序排列,而是按重複次數生序排列。以致很長時間沒通過。請原諒哥。 原題大意:英文字母(除Q和Z外)和電話號碼存在着對應關係,如下所示: A,B,C -> 2 D,E,F -> 3 G,H,I

原创 poj 2756

利用二叉樹的性質: lchild=2*parent; rchild=2*parent+1; 就可以做出來。 #include<stdio.h> int d(int a,int c[]) { int i=0; while(a

原创 2386 Lake counting

#include <stdio.h> #include <stdlib.h> #include <iostream> #include <memory.h> using namespace std; int n,m; int map[11

原创 heu acm基礎訓練之1002

hanoi塔: 原題大意我就不說明了,大家懂得 #include<stdio.h> void move(int n,char x,char y) { printf("move %d from %c to %c\n",n,x,y); } i

原创 hdu 1045

題目大意: 要求:碉堡不能在同一行、同一列。如果(X表示牆)X在這一行裏 ,碉堡可以打不穿牆,也就是有牆可以放多個碉堡。 求一個n*n區域裏最大可以放多少個碉堡。 基本上就是八皇后問題的改編,只不過如果遇到X就可以在次匹配而已。 這道題我

原创 poj 2002

#include <stdio.h> #include <string.h> #define N 1000 struct Point { int x; int y; }; struct Point point[N]; int

原创 poj百練1565

原題大意: 如果一個數是十進制值,那麼可以表示爲10120(10)=1*10^4+0*10^3+……+0*10^0; 如果是二進制的,那麼可以表示爲10120(2)=1*2^4+……+0*2^0; 現在定義斜二進,那麼可以表示爲10120

原创 poj 1065

原題大意: 第一個木棍計時1,接下來的如果滿足了l<='l w<='w,就不計時,找出最少的時間。 只要找出最多的不花時的序列,就行了。 這裏用貪心算法,要多貪心有多貪心,就是這樣,不過比較兩個就必須保持一個滿足,然後比較另一個。 這樣我

原创 heu acm基礎訓練 1001

哈爾濱工程大學 online judge acm訓練之分治算法 原題大意:求a ,b,之間的數有多少個1,包括a,b. 這題典型的分治算法; 舉例說明: 以197爲例: 那麼我們將其分爲個位,十位,個位7上有一個,那麼在190~197上有

原创 poj 1006

木棍:這道題明顯是中國剩餘定理得應用。設要求的數是x,(x+d)%23==p,(x+d)%28==e,(x+d)%33==i;中國剩餘定理:<p>《孫子算經》中有“物不知數”問題:“今有物不知其數,三三數之餘二 ,五五數之餘三 ,七七數之

原创 poj 3038

現在有一些長度相等的DNA串(只由ACGT四個字母組成),請將它們按照逆序對的數量多少排序。 逆序對指的是字符串A中的兩個字符A[i]、A[j],具有i < j 且 A[i] > A[j] 的性質。如字符串”ATCG“中,T和C是一

原创 poj 1011

這道題我還是用回溯法+剪枝 不過這道題必須要減的比較深才能通過。 剪紙分析: 1.總長度必須要比數據的任一都要長, 2.如果木棍要多於一個,那麼該長度必須不是素數。 3.每個木棍的長度是總長度的約數。 #include <stdio.h>

原创 poj 1008

瑪雅歷,這道題的題意就是將瑪雅人創造的歷法進行轉化。 這道題主要是讀懂題意,haab是跟我們曆法是差不多的,365天,但是其是19個月,前18個月每個月是20天,而最後的一個月 是5天,另外的事按天的排名來機時的。 代碼: #includ

原创 poj 2757

求最大上升子序列 分析數據: 我們發現(1,3,5,8)的前一位是(1,3,5)。(1,7)的前位是(1),也就是說後一位數據要想加在上面,就是前衛最大的字串的長度再加上其本身。 這樣我們就有了一個規律。 #include<stdio.h

原创 poj 3177

素數篩選: 求出包括[x,y]之間素數有多少個。 一開始我就沒看提示,一看提示就懵了,1居然不是素數,害的我好幾次沒通過。 打表求素數就是這道題的方法。 如果我求得一個數是素數的話,其倍數就一定不是素數(除1外)。 第二,也不是要把所有的