九度oj 1033
驗證3n+1問題
給你n個數,記錄每個數到1過程中出現的數字,如果只出現過一次,就輸出(逆序的)
思路:set 直接搞,丟進set後,set.count(a[i])==1的就丟進陣列裡面然後倒著輸出就好。
#include#include#include#include#include#includeusing namespace std;int a[505];
int ans[505];
int main()
for(int i=1;i<=n;i++)
else}}
int cnt=0;
for(int i=n;i>=1;i--)
}for(int i=0;i
題目1035:找出直系親屬
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:2369
解決:929
題目描述:如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的(外)祖父,祖母,則a,b是c的grandparent,c是a,b的grandchild,如果a,b是c的(外)曾祖父,曾祖母,則a,b是c的great-grandparent,c是a,b的great-grandchild,之後再多一輩,則在關係上加乙個great-。
輸入:輸入包含多組測試用例,每組用例首先包含2個整數n(0<=n<=26)和m(0
輸出:如果詢問的2個人是直系親屬,請按題目描述輸出2者的關係,如果沒有直系關係,請輸出-。
具體含義和輸出格式參見樣例.
樣例輸入:3 2
abccde
efgfa
be0 0
樣例輸出:
great-grandparent-
思路:顯然可以dfs建好樹後然後求深度。然而並不會。。。
我的思路:把n個輸入當做有向圖的邊來建圖,abc代表a->b a->c有一條權值為1的邊,然後圖建好後,floyd跑一遍最短路求出任意兩點的距離,m個詢問進來後,直接查詢a->b或者b->a的權值就好,分分類輸出就行了。主要是點少。。。
#include#include#include#include#include#includeusing namespace std;
int dis[105][105];
void floyd()}}
}string s;
int n,m;
int main()
else}}
for(int i=1;i<=n;i++)
floyd();
while(m--)
cout<<"grandchild"cout<<"grandparent"<
九度 OJ 之 題目1202 排序
題目描述 對輸入的n個數進行排序並輸出。輸入 輸入的第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。輸出 可能有多組測試資料,對於每組資料,將排序後的n個整數輸出,每個數後面都有乙個空格。每組測試資料的結果佔一行。樣例輸入 4 1 4 3 2 樣例輸出 1 2 3 4 include...
九度OJ教程31 哈夫曼樹之搬運水果
九度oj教程31 哈夫曼樹之搬運水果 木有優先佇列,利用兩趟簡單選擇排序來實現的演算法 c語言坑啊 include define maxs 10005 由於c裡面沒有優先佇列,故,用簡單選擇排序兩次來模擬哈夫曼樹的帶權路徑長度 int main for i 1 i n i scanf d h i s...
九度OJ 08浙大真題之《魔咒詞典》
include include include define maxs 100002 typedef struct ee e dict1 maxs dict2 maxs int cmp1 const void a,const void b int cmp2 const void a,const vo...