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 ...