原创 hdu 1003

題意是求給出序列中最大子序列的和。思路是:maxsum表示在序列a[0]至a[i]中最大的子序列,maxsum= max(max[i-1]+a[i],a[i])這裏會有負數輸入,所以要注意開始和結束位置的確定,更新maxsum的地方不一定是

原创 POJ 1166 The Clocks

3x3的鐘盤,分別有12點,3點,6點,9點4中情形。然後給出的方法表中,數字對應着要轉動的鐘表,每次順時針轉動90度,求使得所有的鐘表都指向12點的最短操作方法。參考文章:https://www.cnblogs.com/kuangbin/

原创 hdu 1029

題意是統計輸入n(奇數)個數字,輸出數量大於等於(n+1)/2的數字。 這個數字的最少爲(n+1)/2個,也就是最少比其餘數字多一。所以用計數器cnt來記錄出現的次數,最後最多的就是所求數。 #include<cstdio> using

原创 hdu 1069

題意是給出n個矩形的長寬高(每個矩形個數無限),問用這些矩形搭塔最高可以搭多高。要求下面一層矩形的長和寬必須大於上面一層矩形的長和寬。(每一個非正方體都有6种放置方法)。相當於求最大遞減的子序列的和。每輸入一個立方體,就將這個立方體的6种放

原创 hdu 1176

用數塔模型解決,用dp[time][side]來表示t秒在x位置掉下的餡餅。然後自下而上的去求一個最大和。 參考文章:http://www.cnblogs.com/sjy123/p/3242730.htmlhttps://blog.csd

原创 POJ 1321 棋盤問題

#include<cstdio> #include<cstring> using namespace std; char chess[10][10]; bool book[10];//記錄此列有無被放置棋子 int n,k,num,way

原创 poj 1426

參考文章: http://user.qzone.qq.com/289065406/blog/1303946967    http://www.cnblogs.com/ACShiryu/archive/2011/07/24/2115356.h

原创 acm-雜 漢諾塔

問題是有三個插槽,n個由小到大的盤子怎麼從第一個插槽移動到第三個插槽?其中小盤子只能放在大盤子上,一次只能移動一個盤子。以3個盤子爲例: 1號,2號移動到第二個插槽。1->2 3號移動到第三個插槽。1->3 1號,2號移動到第三個插槽。2

原创 poj1207

3n+1問題是一個簡單有趣而又沒有解決的數學問題。這個問題是由L. Collatz在1937年提出的。克拉茲問題(Collatz problem)也被叫做hailstone問題、3n+1問題、Hasse算法問題、Kakutani算法問題、T

原创 poj 3984

求從左上角到右下角的最短路徑,1是路,2是牆,只可以前後左右的走。 dfs: #include<cstdio> #include<cstring> using namespace std; int maze[5][5]; int ans

原创 hdu 1159

題意是給出兩個字符串,求出最長公共子序列(LSC問題)。dp[i][j]表示的是字符串a從0到i與字符串b從0到j中最長公共自序列的長度。於是dp[i][j]=dp[i-1][j-1]+1(a[i]==b[j])或 max( dp[i-1

原创 hdu 1024 Max Sum Plus Plus 小白都可以看得懂的解析

這道題弄了很久,網上的很多都看不懂,所以想要寫一個像我這種菜鳥都可以看得懂的解析。題意是將一個長度爲n的序列,分成m段不相交叉的子段,使得他們的和最大。於是可以用dp[i][j]來表示在前j個數中,以num[j]結尾並分爲i段的最大和。此時

原创 POJ 1166 The Clocks

3x3的鐘盤,分別有12點,3點,6點,9點4中情形。然後給出的方法表中,數字對應着要轉動的鐘表,每次順時針轉動90度,求使得所有的鐘表都指向12點的最短操作方法。參考文章:https://www.cnblogs.com/kuangbin/

原创 hdu 1334 Perfect Cubes

題目的意思是給出一個數N,尋找a,b,c,d使得a^3=b^3+c^3+d^3成立,其中a<=N,1<b<c<d。 #include<cstdio> int main(){ int n,a,b,c,d; while(~s

原创 1808 Problem C

#include <iostream>#include <fstream>#include <string>using namespace std;const int maxn = 1024;int main(){string sho,st