Time of Update: 2018-12-03
一題類比題,主要要注意細節的處理。yb牛寫一遍就過了,,,,ym.....自己wa了一個晚上。。。。。具體方法看注釋就懂了。。。#include <stdlib.h>#include <stdio.h>#include <string.h>typedef __int64 TYPE;TYPE xx[15];char str[10005], s[10005];void get(int x){ __int64 i, t = x;xx[0] = 1;
Time of Update: 2018-12-03
此題還是BFS的思想。對每個為1的點進行BFS.若BFS的值小於原來的,則進行替換。這種題目注意格式問題了。。。不要多個空格。。。。 #include <iostream>#include <queue>using namespace std;#define X 200#define Y 200struct Point_Struct{int x;int y;int flag;};int BitMap[X+2][Y+2];void BFS(int x,int
Time of Update: 2018-12-03
搞了半天終於把這題用Dijkstra演算法搞定了!一天的辛苦沒有白費。其實這個題目還可以用polye演算法實現。。。這就是明天的任務了!!!! 題目:演算法實驗題12.1
Time of Update: 2018-12-03
遞迴寫的全排列~~~按字典序排序輸出。。。複習一下DFS吧。。。。大牛直接54掉。。。 #include <iostream>#include <algorithm>#include <string>using namespace std;void DFS(int a[10], int n, int p){int c[10];int i;if (n == p+1){for (i = 0; i<n; i++)printf("%d",
Time of Update: 2018-12-03
這一題真是做了好久。。。首先是演算法搞錯了,因為之前沒有做過hash的題目,所以也沒有想到這種方法。 後來看了AC大牛的方法,又想了好久,終於理解了。。。。再後來又由於沒有看清楚題目,注意:在拼紙片的時候,每張紙片都必須用上,且T首位不能為0,而WA了幾次。。。 AC牛去年2月就A了這題。。。。 這題主要是用hash表來儲存算出的資料,為什麼要這樣想,因為題目0<K<100。 /* * File: main.cpp * Author: cc * * Created on May
Time of Update: 2018-12-03
S集存放最小產生樹的頂點。lowcost[j] :j->s集的最小權值closest[j]: j在S集中的鄰接頂點T集合:存放最短路struct enode{ int weight;//邊權 int
Time of Update: 2018-12-03
這題是比較典型的矩陣乘法的題目。矩陣乘法的一個用處就是計算常係數線性齊次遞推關係,例如菲波衲契數列。 具體請看 http://blog.csdn.net/cclsoft/archive/2010/05/13/5586549.aspx要注意的地方有如何確定mm矩陣的pow數。還有mm矩陣的初始化。特別是第0行的那些,是代表係數如F(n) = a*F(n-1)+b*F(n-2)+c*F(n-3)+d*F(n-4)這個數列初始化一個4*4的mm矩陣a b c d1 0 0 00 1 0 00 0 1
Time of Update: 2018-12-03
這題做了我一整天呀!!!!!!!!!!也TLE了一整天!!!!!!!!! 最後竟然卡時間過了。。。。936ms.....實在是eggache..... 最開始題目沒有看清楚,,,不懂m是幹什麼用的,導致一直wa....後來由於map過多使用類似t_map["abc"]這樣的進行查詢和插入,導致時間過長。 因為t_map["abc"]=1在"abc"存在的時候要先進行查詢,然後修改值。但是在"abc"不存在的時候,執行bb =
Time of Update: 2018-12-03
好久沒有做運算式運算的題目了,,重新看了好久。。。。這題和一般的運算式運算有些不同,要處理等號這種運算。。 其實等號運算的優先順序可以看成是除(外最低的。。。具體的運算子優先順序可以去查看c++之類的書籍,參考一下就ok了。。 另外變數值的儲存可以用map來實現。。。 代碼注釋十分詳細,大家看吧。。。 #pragma warning( disable : 4786 )#include <iostream>#include <string>#include <map&
Time of Update: 2018-12-03
此題首先想到的是用DP多次求長非遞增子串,然後把找出來的最長串從數組裡面刪除,繼續尋找,直到找完為止。但是這樣找到得解未必是最優解,因為可能出現多個長度相等得最長非遞增字串。預設的是刪除第一串。這樣得到的解就不一定是最優的了。 那麼後來baidu後發現只要找到最長非遞減字串就可以達到目的。應該求最長 不降 子序列。這樣的長度才是 最少需要的 套數,因為這個序列中的任何兩個飛彈都不能共用一個攔截系統 ,而且其餘的飛彈 都能和這個最長序列中的某個飛彈分為同一組。#include
Time of Update: 2018-12-03
簡單的來說,就是從S(源)開始BFS,直到到達T(匯)or不存在增廣路。所謂增廣路就是從S開始到T的一條路徑,而且這條路徑上的所有邊都是非飽和邊,即f(i,j)<c(i,j)。因為都是非飽和邊,所以這條路徑上的邊還可以增大經過它們的流,所以稱為增廣路。而且,這條增廣路可以增加的流量,決定於,這條路徑上的剩餘容量最小的那一條邊,可增加的流量就是這最小的剩餘流量。所以說,求最大流的辦法就是,不斷地尋找增廣路,先找到一條增廣路,然後把這條路徑上的,所有邊,減掉,這條增廣路可以增大的流,這樣重複,
Time of Update: 2018-12-03
一般的求冪再對10取餘會逾時,用快速冪#include <iostream>#include <cstdio>using namespace std;int mod_exp(int a, int b, int c) //快速冪取餘a^b%c{ int res, t; res = 1 % c; t = a % c; while (b) { if (b & 1) {
Time of Update: 2018-12-03
此題利用的是圖的廣度優先遍曆的思想。先找出最短路徑。然後再從終點遞迴回朔求解。 其實此遞迴過程可以寫成棧,會更加節省時間。 下面是My Code。。。。。 #include <iostream>#include <queue>#include <string.h>using namespace std;#define X 100#define Y 100#define DISABLE_SIGN -1#define MOUSEONE_SIGN
Time of Update: 2018-12-03
題目:0點至12點之間(包括0點及12點),時針、分針和秒針共重合幾次?每次是幾點?分析:標準的鐘共有60格,時針與分針每小時重合一次,分針與秒針每分鐘重合一次。所以12小時內(設從0點開始,到11:59:59結束),分針與時針共重合12次,且這12次的重合時間可以容易得算出來(設走了i格,若i>60,則i=i%60),然後再算出此時秒針走了j格(若j>60,則j=j%60),若i等於j,則三針重合,否則不重合。三針的速率:時針,1/12格每分鐘;分針,1格每分鐘;秒針,60格每分鐘
Time of Update: 2018-12-03
1. 斷行符號與分行符號的起源在打字機時代, 斷行符號(CR, Carriage Return)指列印針回到行首, 換行(LF, Line Feed)指列印針移到下一行. 當電腦出現時, 發現不再需要兩個字元來表示分行符號, 所以UNIX和Mac平台均只有一個字元來表示分行符號, 而Windows沿用了打字機的換行方式. 如果用十六進位的ASCII值表示, LF是0X0A, CR是0X0D.1. Windows平台的分行符號Windows平台的分行符號是CR+LF.
Time of Update: 2018-12-03
soj.me/1782// Problem#: 1782// Submission#: 1211799// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by
Time of Update: 2018-12-03
本文將探討程式級的全域變數在多檔案中的使用。1. const全域變數const變數預設為檔案級的局部變數://test.cppconst int SIZE = 10;以上定義的變數不能其它源檔案中訪問。很多人定義const全域變數時,會用到類似如下的代碼結構://common.hconst int SIZE = 10;//func1.cpp#include "common.h"void func1 { //use of SIZE}//func2.cpp#include
Time of Update: 2018-12-03
CSS代碼:body { background: #FFF url(img/bg.gif) repeat-y center top;} 如果網頁內容較少,body的背景圖片只佔了瀏覽器的高度的一部分,很難看,現給body加個最小高度:body { background:#FFF url(img/bg.gif) repeat-y center top; min-heigth:min-height:100%; height:auto !important;
Time of Update: 2018-12-03
1145.
Time of Update: 2018-12-03
1293. 3n+1數鏈問題Description在電腦科學上,有很多類問題是無法解決的,我們稱之為不可解決問題。然而,在很多情況我們並不知道哪一類問題可以解決,那一類問題不可解決。現在我們就有這樣一個問題,問題如下:1. 輸入一個正整數n;2. 把n顯示出來;3. 如果n=1則結束;4. 如果n是奇數則n變為3n+1 ,否則n變為n/2;5. 轉入第2步。例如對於輸入的正整數22,應該有如下數列被顯示出來:22 11 34 17