Time of Update: 2018-12-03
題意:求一個數不斷地除以他的因子,直到變成1的時候
Time of Update: 2018-12-03
來源:點擊開啟連結簡介:很多的螞蟻都在長度為L(cm)的膀子上爬行,它們的速度都是1cm/s,到了棒子終端的時候,螞蟻就會掉下去。如果在爬行途中遇到其他螞蟻,兩隻螞蟻的方向都會逆轉。已知螞蟻在棒子的最初位置座標,但是我們不知道他們會往哪一個方向爬。請求出所有螞蟻掉下去的最短時間和最長時間。由題意可知,螞蟻數的上限為2^1000000,所以直接枚舉肯定不行。其實換一個角度就可以想出來,螞蟻的個體是相同的,所以相遇和沒相遇一個水平,所以要麼從一頭掉下,只要找出所有螞蟻與較遠端比較,然後找出最大值就是
Time of Update: 2018-12-03
1、HDU 2104 hide handkerchief(數學),小孩N個圍成一圈,一次跳M個來數數,問能否遍曆到所有小孩,輾轉相除法求公約數。#include <iostream>using namespace std;int gcd(int a,int b){ if(b==0) return a; return gcd(b,(a%b));}int main(){int
Time of Update: 2018-12-03
文章中的二叉樹原型為 《Data Structures, Algorithms, & Applications in C++》, 1nd Edition中的樹類。要求在源檔案的基礎上 實現以下三個操作:【1】給出前序走訪和中序遍曆結果,構造樹。【2】給出計算葉子節點數目的函數。【3】交換樹中的左右所有節點。需要用到的主要函數(異常拋出\鏈表隊列之類與主題沒啥關係的請查書):遍曆尋找函數: BinaryTree<char> MakeTree2(string
Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/111/C一個n*m的棋盤,初始狀態下每個格子上都有一隻蜘蛛,蜘蛛一步可以上下左右走,也可以停在原地,問,走一步,能使棋盤最多產生多少個空位考慮到n*m較小,所以有一維<=6,這時候就應該想到可以用狀態壓縮DP解決dp[i][j][k]表示前i行,第i行的狀態為j,第i+1行的狀態為k時所能產生的最多空位的數量(不包括第i+1行),由於不包括第i+1行,所以在狀態轉移判斷某些狀態能否轉移過來的時候就簡單多了,
Time of Update: 2018-12-03
接上篇:5、HDU 3188——Just A Triangle(水)同3,判斷等腰/直角三角形,代碼略。6、HDU 1328——IBM Minus One(水)所有字母加一,字母Z變成A,注意輸出格式。#include <iostream>#include <string>using namespace std;int main(){int testcase;cin>>testcase;for(int i=1;i<=testcase;i++){char
Time of Update: 2018-12-03
來源:點擊開啟連結看KMP看煩了,來一道並查集入門吧。並查集其實是一種簡單的資料結構,採用樹的方式儲存,數組中讀取的方式是通過父親節點來進行尋找,顧名思義,取該名的原因是因為可並可查。常用來解決一種求兩兩關係之間的總類數的模型,實現也十分美觀,沒有什麼難懂的地方。狀態壓縮也非常淺顯,待瞭解深入後可以小做總結以備忘之。這個題是標準的並查集模板,結構清晰,基本都不用講,很快就可以自己練會。沒有狀態壓縮的並查集有個特點就是卡時間,所以盡量使用scanf,printf,題目也會給予透露的,畢竟時間充裕的
Time of Update: 2018-12-03
題目:點擊開啟連結這個題個人還是感覺STL簡單一些(比數組強),一遍排序就解決了,也不用管別的,排完無腦pop_front,pop_back就行了。。empty並不能很好的成對判斷,個人建議還是把最後的一組給手動類比了,有可能PE的,至少看狀態,HDU同頁的五虎大神就PE了。。#include <iostream>#include <list>#include <algorithm>using namespace std;int cmp(int a,int
Time of Update: 2018-12-03
第一百零一篇博文了喲~比賽的時候直接看D和E了,結果都沒做出來,我這個大水貨。A題 : 水題,滿足整除其實就是餘數為0B提 : 類比題C題 : 逆著恢複原來的數列就好了(不斷的減一),直到碰到0就停止,當然不能類比D題 :
Time of Update: 2018-12-03
連結:http://www.codeforces.com/problemset/problem/215/E題意:問你 l r之間有多少的數是周期數,周期數的定義為:這個數的二進位形式是以k為周期的,k<n;假設二進位長為nl r 很大很大- -其實就是一般的按位統計的方法,在求長度小於len的二進位中有多少的位元是周期數時,可以枚舉周期為1 2 3 。。。,當然這個周期都是獨一無二的,比如當前枚舉周期為6,那周期為2 和 3 的也會被算進來,所以要減去周期為2 和
Time of Update: 2018-12-03
題目:點擊開啟連結這個題目和線段的題目一樣 是一個區間劃分問題的變形。HDU的PPT上有詳細的說明。注意奇偶,注意最多交叉的個數#include <iostream>#include <cstring>using namespace std;int main(){ int testcase; int p[300]; int quenum; int st,ed,temp; int minc; cin>>testcase;
Time of Update: 2018-12-03
戳這裡看題目題意看了很久才懂,題解又搞了許久才懂,敲的時候連組合數C[i][j]都敲錯了.......這或許就是被考試折磨的下場,下學期盡量在前半學期不要落下太多的功課吧。這道題關鍵是真真假假,假假真真 - -題意是說有n個人,有些人說真話,有些人說假話,每個人都知道所有人是說假話的還是說真話的,現在問他們每一個人:說真話的人有多少。每個人都會給出一個答案ai,說假話的人會隨便給出一個數,但不會給出真實的答案,現在,給你兩個數 n k
Time of Update: 2018-12-03
A題:20分鐘才提交的,不懂題目什麼情況,直接類比n次好了,- -B題:記錄行號和列號,交換兩行的時候直接交換行號就好了C題:有一個很好的方法是用p[i]記錄小於等於i的且能被i整除的最大的素數,然後約分的時候處理起來特別的方便D題:排個序,記錄兩個指標移動一下即可E題:矩陣乘法經典題,求一個點走到另一個點走k步有多少種走法,按照限制條件構造出初始矩陣,快速冪算一下即可C題:http://codeforces.com/contest/222/submission/2128145E題:http:/
Time of Update: 2018-12-03
既然回到原點,那就從原點開始吧…… 第一道題:POJ 2370 題目考英文閱讀,大意就是求最少的支援人數,組數折半+1,每組的人折半+1 ,7.16 PROBLEM A... 這個重寫,一次過了……#include <iostream>#include <algorithm>using namespace std;bool cmp(int a,int b){return a<b;}int people[101];int main(){int
Time of Update: 2018-12-03
剛剛接觸strtok函數,感覺十分神奇。定義:strtok文法: #include <string.h> char *strtok( char *str1, const char *str2 );功能:函數返回字串str1中緊接“標記”的部分的指標, 字串str2是作為標記的分隔字元。如果分隔標記沒有找到,函數返回NULL。為了將字串轉換成標記,第一次調用str1 指向作為標記的分隔字元。之後所以的調用str1 都應為NULL。例如: char str[] = "now #
Time of Update: 2018-12-03
連結:http://www.codeforces.com/problemset/problem/208/E題意:給你一個森林,m個詢問:v,p求有多少個點(除v外) 與 v的第p個祖先相同這個題首先要解決找某個點的第p個祖先的問題,可以採用倍增法記錄一個二維數組p[u][i]表示u的第2^i個祖先,那麼通過這個數組我們就可以知道u的上面任意深度(相對於u)祖先是誰(巧妙的利用二進位)具體求法和用法見下,還可以找LCA的/*2^17=131072;2^18=262144;*/const int
Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/223/B純粹想鍛煉一下自己的表達能力。題意:給你兩個字串S,T。將S中所有的子序列(要求這些子序列和T串相同)染色,最後問你能否將S染全,即每個字元都會染到思路:先從左往右匹配,求出S中當前字元最大可以匹配到T串的哪個位置,然後再反過來匹配一遍,求出S中當前字元最左可以匹配到T串的那個位置比如S: ababbabaT: aba那麼S中第4、5個位置的'b'的最右能匹配到T中的位置都是上一個'b'(S中第二個字元)
Time of Update: 2018-12-03
很多人常用HDU的OJ,但是有些時候難免迷茫失措。我做了這麼多,究竟是不是水題?太難的看不下去,太簡單的不屑一做?我是新手,到底應該從哪看起?大牛眼中簡單的BFS貪心,我怎麼就是不會?……近來發現HDU有一個存在很久卻乏人使用的系統——ACM Steps,它類似OIER時期的著名OJ——USACO。連結地址:http://acm.hdu.edu.cn/game
Time of Update: 2018-12-03
發發水題題解~A題:暴力統計即可
Time of Update: 2018-12-03
div1 :A : 找最長的子序列,只包含兩種數且每兩個相鄰的數都不相同,dp[i][j]代表以第i個數結尾上一個數是第j個數的最長的序列http://codeforces.com/contest/255/submission/2787851B: 問你一個點經過幾次擴散式的染色才能夠染不小於C個方格,很明顯的二分答案判可行,不過在判斷可行的時候還真是有點小糾結,想仔細了就okhttp://codeforces.com/contest/255/submission/2791831D:DP :