poj1013 天平稱重

        參考了discuss裡某同學的方法,轉過來吧,看完之後確實寫代碼寫的飛起.....Posted by LaPartidaat 2013-02-22 18:37:18onProblem

poj1062 昂貴的聘禮(dijkstra最短路)

       題意說的比較複雜,不過大體是個稍微有點改動的dijkstra演算法,為什麼說是稍有改動呢,因為多了一個等級的限制,也就是說有向圖G中所有的邊在不同的等級限制下只能出現一部分,這個限制就是頂點之間的等級(level)之差要小於等於M。#include <stdio.h>#include <string.h>int M;//等級差距int N;//物品總數int L[101];//主人等級int X[101];//替代品總數int

poj1256 字典序的排列(dfs)

        稍微有點變化的深搜,基礎的深搜是每個頂點訪問一次後塗黑,這裡是有的頂點可能允許訪問多次,比如題目中給的acba,這裡的a最多可以訪問兩次,兩次才塗黑,其它依次類推。注意題目中的字典序是這個順序:'A'<'a'<'B'<'b'<...<'Z'<'z'。#include <stdio.h>#include <string.h>int lower[26];//記錄每個小寫字母的次數int upper[26];//大寫char

poj1028 類比瀏覽器後退和前進(棧)

        題目是讓類比實現一下瀏覽器的後退和前進功能,題目中也有提示,用兩個棧就可以了,比較簡單。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int top;//棧頂char* s[100];} Stack;/***初始化*/Stack* create_stack(){Stack* stack=(Stack*)(malloc(sizeof(Stack)))

poj3349 雪花(hash)

        踩著線過的,根據6個arm的和模數做的hash,程式效率不怎麼高,但是學到東西才是主要的.......大批資料要先根據一些明顯的特徵劃分到不同的小範圍內,再在小範圍內遍曆判斷.....#include <stdio.h>#include <string.h>#include <stdlib.h>#define HASH_SIZE 10000000typedef struct tSnow{int a[6];struct tSnow* next;}

poj1664 放蘋果(數學遞推)

        題目:把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。        用f(M,N)表示將M個蘋果放到N個相同的盤子裡的放法,可以這樣考慮:如果有盤子是空的,那麼就相當於將M個蘋果放到N-1個盤子裡;如果所有的盤子都不為空白,那麼可以先將每個盤子放一個,剩下的仍是將M-N個蘋果放到N個盤子的問題。因此f(M,N)=f(M,N-1)+f(M-N,N)。#include

poj1035 spell checker

        不是太難,題目大概意思都想不太起來了,當時還是java寫的。import java.util.Scanner;public class Main {// 1035private String[] dictionary;private int[] dic_word_lengths;// 每個字典串的長度private int dictionary_size;// 字典長度private String[] words;private int word_size;public

poj3253 (Huffman+堆)

        教科書上能照搬的演算法,哈夫曼+最小堆......#include <stdio.h>int N;long long a[20000];/***沿著堆下沉,直至找到它適合的位置(左右孩子的值都不小於它)*/void shiftdown(int i){int last_not_leaf=(N-2)/2;//最後一個非葉子節點int

poj3979 分數加減法

        挺水的題,幾乎不需要邏輯。不過要注意類似5/1這種情況......#include <stdio.h>int gcd(int x,int y){int n=x%y;if(n==0){return y;}return gcd(y,n);}int main(void){//a/b+c/dint a,b,c,d;char e,f,g;int up,down;int

poj1163 數字三角型(dp入門)

        動態規劃入門題,可以從三角形的底部向上推,也可以從上面往下推,從底部向上的方法應該要簡單些。import java.util.Scanner;public class Main {private int N;private int[][] a;private int[][] d;public void readN() {Scanner s = new Scanner(System.in);N = s.nextInt();a = new int[N][N];d = new int[

poj1496 字串編碼(排列組合)

        按照題目的編碼規則,給一個串輸出它對應的編號。排列組合的問題,算出當前串前面的串共有多少個,靜下心好好推推就好了。#include <stdio.h>#include <string.h>int c[27][27];int cal(char* str){//vwxyzchar ch='a'-1;int i=0,j,k;while(str[i]){//字串是否嚴格升序,順便求長度if(str[i]<=ch){return 0;}ch=str[i];i+

poj1753 flip game(枚舉+寬搜)

        題意是4*4的棋盤,所有的格子都擺上棋子(棋子一面是黑色,另一面是白色),每次可以選擇一個棋子翻過來(即白變黑或黑變白),不過翻的同時要同時將其上下左右相鄰的棋子也一同翻過來。問最少多少次能翻到全黑或全白。       

poj1330 樹的最近公用祖先

      給一棵樹,給兩個節點A和B,找出最近的公用祖先。先讓A走到root,把其中經過的節點標記下,在讓B走到root,其中碰到的第一個標記節點就是所求節點了。#include <stdio.h>#include <string.h>int parent[10000];int visited[10000];int main(void){int T;int N;int pnode;int

poj2418 (二叉搜尋樹)

        其實這題方法應該還是挺多樣的,trie啦,hash啦等等,bst寫的少,因此就練了練手。#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct tNode{char species_name[31];struct tNode* left;struct tNode* right;int count;}Node;Node* root=NULL;char str[3

poj1068 括弧編碼

        想用堆棧做來著,想半天沒想出來,就類比水水過了........#include <stdio.h>#include <string.h>int N;int a[40];void p_to_w(){int i;int j;for(i=0;i<2*N;i++){if(a[i]==1){j=i-1;while(a[j]){j--;}a[j]=1;printf("%d ",(i-j+1)/2);}}printf("\n");}int

poj1656 (寂寞題)

出題人好寂寞啊,當然做題的更寂寞,這種題以後要少做.........#include <stdio.h>#include <string.h>int color[101][101];void paint(int x,int y,int L,int paint_color){int i;int j;for(i=x;i<x+L;i++){for(j=y;j<y+L;j++){color[i][j]=paint_color;}}}int test(int

poj3096 Surprising Strings

        題目關鍵是對給出的字串,判斷其中兩個字元組成的pair是否有重複,因為每個pair只有倆字母,而且都是大寫,所以直接開個26*26的數組映射下就好了。#include <stdio.h>#include <string.h>int occur[26][26];int main(void){char str[80];while(1){scanf("%s",str);int

poj1338 醜數Ugly Numbers

        醜數就是可以寫成(2^x)*(3^y)*(5^z)這種形式的數字,其中xyz均為非負整數。可以看出,下一個醜數總是當前已計算的某個醜數或乘2或乘3或乘5得到。因此可以為2、3、5各維護一個指標(或者說遊標吧..),根據他們來產生下一個醜數,同時更新指標。        比如,初始時三個指標均指向1,這時1*2和1*3和1*5三個數中,最小的是1*2,因此下一個醜數是2,同時2的指標指向下一個醜數,也就是2 。下一步比較2*2和1*3和1*5,發現1*3最小,因此下一個醜數是3,3

poj2299 逆序數

        還是逆序數,之前那個DNA排序稍微改改就A了。#include <stdio.h>#include <stdlib.h>#include <string.h>int a[500000];long long merge(int low,int mid,int high){long long count=0;if(low<high){int i=low;int j=mid;int k=0;int*

poj2411 鋪地板(動態規劃)

        這就是傳說中的好題了,編程之美上好像有這個題目,可以讓你學到東西,又不至於因為太難浪費太多時間打擊自信心。       

總頁數: 61357 1 .... 21021 21022 21023 21024 21025 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.