天梯賽 練習集

2021-09-14 02:12:25 字數 1839 閱讀 6325

string類只能用cout輸出,不能用printf輸出

getline讀入一行字元:getline(cin,string);

string轉換成char *:

string str = "hello world";

int len = str.length();

char *data = new char[len+1];

strcpy(data, str.c_str());

string到char*的轉換可以用string的乙個成員函式strcpy實現

通過len控制連續因子的個數,可以通過n的範圍確定最多只能到12的階乘,取len從11~1進行模擬

#include#include#include#include#includeusing namespace std;

int main()

if(n%sum==0)

edge[maxn*maxn];

void add(int u,int v,int w)

struct node

};void dijkstra(int s)

); }

else if(dis[dest]==weight+u.val)

edge[maxn*maxn];

void add(int u,int v,int w)

struct node

};int getid(string s)

return mp[s];

}void dijkstra(int s)

); }

else if(dis[dest]==weight+u.val)

for(int i=0; i>name,a=getid(name);

cin>>name,b=getid(name);

scanf("%d",&c);

add(a,b,c);

add(b,a,c);

}dijkstra(s);

int t=d;

vectorpath;

for(; d!=pre[s]; d=pre[d])

path.push_back(d);

reverse(path.begin(),path.end());

for(int i=0; i");

}printf("%d %d %d\n",cnt[t],dis[t],num[t]);

}

首先不管是映象還是非映象,第乙個遍歷的一定是根節點,然後根據二叉搜尋樹的性質可以找到左子樹和右子樹,然後遞迴尋找下去。

#include#includeusing namespace std;

const int maxn = 1020;

const int inf = 0x3f3f3f3f;

bool ismirror;

int pre[maxn];

vectornow;

void f(int l,int r)

if(rson-lson!=1) return;

f(l+1,lson);

f(rson,r);

now.push_back(pre[l]); //存每乙個根節點

}int main()

int len=i-l;

tree[root].push_back(build(l,i-1,l,l+len-1));

tree[root].push_back(build(i+1,r,l+len,r-1));

return root;

}void bfs(int root)

團體程式設計天梯賽 練習集 題庫

猿題庫 l1 001 hello world 5 分 l1 003 個位數統計 15 分 l1 004 計算攝氏溫度 5 分 l1 007 念數字 10 分 l1 008 求整數段和 10 分 l1 010 比較大小 10 分 l1 012 計算指數 5 分 l1 013 計算階乘和 10 分 l1...

天梯賽練習2

7 6 航空公司vip客戶查詢 25 分 不少航空公司都會提供優惠的會員服務,當某顧客飛行里程累積達到一定數量後,可以使用里程積分直接兌換獎勵機票或獎勵公升艙等服務。現給定某航空公司全體會員的飛行記錄,要求實現根據身份證號碼快速查詢會員里程積分的功能。輸入首先給出兩個正整數n 10 5 和k 500...

天梯賽 並查集

l2 013 紅色警報 25 分 戰爭中保持各個城市間的連通性非常重要。本題要求你編寫乙個報警程式,當失去乙個城市導致國家被 為多個無法連通的區域時,就發出紅色警報。注意 若該國本來就不完全連通,是 的k個區域,而失去乙個城市並不改變其他城市之間的連通性,則不要發出警報。輸入在第一行給出兩個整數n ...