演算法分析:生理週期問題
上機程式碼:
#include<iostream>
#include<cstdio>
using namespace std;
#define N 21252
int main(){
int p,e,i,d,caseNo = 0;
while(cin>>p>>e>>i>>d && p!=-1){
++caseNo;
int k;
for(k = d+1;(k-p)%23;++k); //先找k的最小公倍數
for(;(k-e)%28;k+=23);
for(;(k-i)%33;k+=23*28);
cout<<"Case"<<caseNo<<
":the next triple peak occurs in "<<k-d<<" days"<<endl;
}
}
相關推薦
演算法分析:生理週期問題
上機程式碼: #include<iostream> #include<cstdio> using namespace std; #define N 21252 int main(){ int p,e,i,d,caseNo = 0; &
演算法分析:特殊密碼鎖問題
上機程式碼: #include<iostream> #include<cstring> #include<algorithm> using namespace std; #define N 32 void
資料結構與演算法分析:線性結構(3)
堆疊 1.計算機如何進行表示式求值 算術表示式: 由兩類物件構成:運算數,運算子號 不同運算子號優先順序不同 ①中綴表示式:把運算子號放在兩個運算數之間:a+b*c-d/e &
資料結構和演算法分析:第四章 樹
4.1預備知識 樹(tree)可以用幾種方式定義。定義樹的一種自然的方式使遞迴的方式。一棵樹使一些節點的集合。這個集合可以是空集;若不是空集,則樹由稱做為根(root)的節點r以及0個或多個非空的樹集合T1、T2、T3組成,這些子樹的每一課根都被來自根r的一條又
資料結構和演算法分析: 第五章 雜湊
散列表的實現常常叫做雜湊。雜湊是一種用於以常數平均時間執行插入、刪除和查詢的技術。 5.1 一般想法 散列表的資料結構是一個包括一些項(item)的具有固定大小的陣列。通常查詢是對於項的某個部分(即資料域)來進行的。這部分就叫做關鍵字。 每個關鍵字被對映到0到T
演算法分析:害死人不償命的(3n+1)猜想(Java)
class Main{ private int num=0; public Main(){} public void input(){ Scanner in=new Scanner(System.in); this.num=in.nextInt(); }
演算法分析:大O符號/大Ω符號/大Θ符號/小o符號/小w符號
大Θ符號是大O符號和大Ω符號的結合。即:若。 這一符號首先由高德納於1970年提出[1]。 注意 大Θ符號經常被誤用;有的作者可能會使用大O符號表達大Θ符號的含義。因此在看到大O符號時應首先確定其是否為誤用。 我發現讀完維基百科還是有一些不清晰的地方,或者不好理解的地方,再加上這些。 設函式
演算法分析:方陣的主對角線之上稱為“上三角”。
4、方陣的主對角線之上稱為“上三角”。 請你設計一個用於填充n階方陣的上三角區域的程式。填充的規則是:使用1,2,3….的自然數列,從左上角開始,按照順時針方向螺旋填充。 例如:當n=3時,輸出: 1 2 3 6 4 5 當n=4時,輸出: 1
Chapter_2 演算法分析:歐幾里得演算法
unsigned int GCD(unsigned int M,unsigned int N) //M>=N { unsigned int Rem; while(N>0)
資料結構與演算法分析:雜湊表
以下是閱讀了《演算法導論》後,對雜湊表的一些總結: 雜湊表又叫散列表,是實現字典操作的一種有效資料結構。雜湊表的查詢效率極高,在沒有衝突(後面會介紹)的情況下可做到一次存取便能得到所查記錄,在理想情況下,查詢一個元素的平均時間為O(1)(最差情況下散列表中查詢
資料結構與演算法分析:樹的基本操作與AVL樹旋轉的實現
程式碼源自《資料結構與演算法分析——c語言描述》二叉查詢樹的基本操作:#include<stdlib.h> #include<stdio.h> typedef struct TreeNode *Position; typedef struct Tre
演算法分析:Elevator
The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which f
演算法分析:間接排序
排序的過程中,經常要互動資料,尤其是對於C++這種語言,互動兩個比較大的物件,是很耗時間的。 如果只是互動兩個物件的指標,就會快很多了。 間接排序的關鍵是排序後,怎樣才能按指標的順序,擺好陣列的位置。
演算法導論 第二章:演算法入門 筆記 (插入排序、迴圈不變式、演算法分析、最好和最壞時間複雜度、選擇排序、分治法、合併排序)
插入排序: 排序問題的定義如下: 輸入:N個數{a1, a2,..., an }。 輸出:輸入序列的一個排列{a'1 ,a'1 ,...,a'n },使得a'n <=a' n<=...<
演算法分析與設計:動態規劃之矩陣鏈乘
矩陣鏈乘問題 對於給定的n個矩陣,M1, M2 ,…, Mn,其中矩陣Mi 和Mj 是可乘的,要求確定計算矩陣連乘積 ( M1M2 …Mn )的計算次序,使得按照該次數計算 矩陣連乘積時需要的乘法次數最少 1、描述最優解結構 目標: 求出矩陣鏈乘Mi Mi+1 ┅Mj-1 Mj(
C/C++ 演算法分析與設計:貪心(整數配對)
題目描述 江鳥想到一個有趣的問題:給你N個正整數,你可以將這N個整數按兩個一組的方式成對劃分,當然其中的元素也可以不和其他元素配對劃分。現在的問題是,讓劃分為一對的元素的乘積與未配對的元素相加求和,並且讓和最大。比如:考慮這個集合{0,1,2,4,5,3},如果我們讓{0,3}、{2,5}分別成
C/C++ 演算法分析與設計:貪心(排隊接水)
題目描述 N個人同時提水到一個水龍頭前提水因為大家的水桶大小不一,所以水龍頭注滿第i(i=1,2,3......N)個人所需要的時間是T(i) 編寫一個程式,對這N個人使他們花費的時間總和最小,並求出這個時間。 例如有三個人a,b,c,用時分別是2,1,3 排隊順序為c,b,a的時候,c要等
C/C++ 演算法分析與設計:貪心(守望者的逃離)
題目描述 惡魔獵手尤迫安野心勃勃.他背叛了暗夜精靈,率深藏在海底的那加企圖叛變:守望者在與尤迪安的交鋒中遭遇了圍殺.被困在一個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去,到那時,刀上的所有人都會遇難:守望者的跑步速度,為17m/s, 以這樣的速度是無法逃離荒島的
資料分析:分類問題和預測--KNN演算法
資料型別可以有:數字,分類變數,二進位制,email,微博,使用者資料,json,地理位置,感測器資料等。資料定量或者定性的屬性值,比如身高,體重,年齡,性別,學科成績等。 演算法簡介: 分類(classification):給定一些屬性標籤,預測它們的一些屬性。比如給定
演算法設計與分析:K-Similar Strings(Week 5)
學號:16340008 Question: Strings A and B are K-similar (for some non-negative integer K) if we can swap the positions of two letters in A