日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

团体程序设计天梯赛-练习集 (L2-001 - L2-020)

發(fā)布時(shí)間:2023/12/14 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 团体程序设计天梯赛-练习集 (L2-001 - L2-020) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

L2-001 緊急救援 最短路+路徑打印

作為一個(gè)城市的應(yīng)急救援隊(duì)伍的負(fù)責(zé)人,你有一張?zhí)厥獾娜珖貓D。在地圖上顯示有多個(gè)分散的城市和一些連接城市的快速道路。每個(gè)城市的救援隊(duì)數(shù)量和每一條連接兩個(gè)城市的快速道路長度都標(biāo)在地圖上。當(dāng)其他城市有緊急求助電話給你的時(shí)候,你的任務(wù)是帶領(lǐng)你的救援隊(duì)盡快趕往事發(fā)地,同時(shí),一路上召集盡可能多的救援隊(duì)。

輸入格式:

輸入第一行給出4個(gè)正整數(shù)N、M、S、D,其中N(2≤N≤500)是城市的個(gè)數(shù),順便假設(shè)城市的編號為0 ~ (N?1);M是快速道路的條數(shù);S是出發(fā)地的城市編號;D是目的地的城市編號。

第二行給出N個(gè)正整數(shù),其中第i個(gè)數(shù)是第i個(gè)城市的救援隊(duì)的數(shù)目,數(shù)字間以空格分隔。隨后的M行中,每行給出一條快速道路的信息,分別是:城市1、城市2、快速道路的長度,中間用空格分開,數(shù)字均為整數(shù)且不超過500。輸入保證救援可行且最優(yōu)解唯一。

輸出格式:

第一行輸出最短路徑的條數(shù)和能夠召集的最多的救援隊(duì)數(shù)量。第二行輸出從S到D的路徑中經(jīng)過的城市編號。數(shù)字間以空格分隔,輸出結(jié)尾不能有多余空格。

輸入樣例:

4 5 0 3 20 30 40 10 0 1 1 1 3 2 0 3 3 0 2 2 2 3 2

輸出樣例:

2 60 0 1 3

分析:

Dijkstra基礎(chǔ)應(yīng)用,比模板單純求最短路的基礎(chǔ)上多了輸出路徑,路徑條數(shù)以及多權(quán)重(路徑相同時(shí)人數(shù)盡量大),路徑只要存每個(gè)節(jié)點(diǎn)的前驅(qū),然后倒著遍歷一遍就行。其他就是一些小細(xì)節(jié),看注釋。優(yōu)先隊(duì)列默認(rèn)為大頂堆priority_queue<PII>,這里需要改成小頂堆priority_queue<PII,vector<PII>,greater<PII> >

代碼:

#include<bits/stdc++.h> using namespace std; #define PII pair<int,int>const int INF = 0x3f3f3f3f; const int N = 510;//n個(gè)點(diǎn)m條邊從s到d int n,m,s,d; //分別為:鄰接矩陣存圖,是否訪問過,到起點(diǎn)的最短距離。 vector<PII> mp[N]; int vis[N], dis[N]; //分別為:到當(dāng)前點(diǎn)最多召集幾個(gè)人,每個(gè)城市的人數(shù),存路徑,到當(dāng)前點(diǎn)幾條路。 int tot[510], city[510], path[510], road[510];void DJ(int s){//初始化 for(int i = 1 ; i <= n ; i ++ ) dis[i] = INF, vis[i] = false, path[s] = -1;tot[s] = city[s];dis[s] = 0;road[s] = 1;//小頂堆 priority_queue<PII, vector<PII>, greater<PII> > q; q.push({0, s}); while(q.size()){int t = q.top().second;q.pop();if(vis[t]) continue;vis[t] = true;for(int i = 0 ; i < mp[t].size() ; i ++ ){int j = mp[t][i].first, w = mp[t][i].second;if(dis[j] > dis[t]+w){ //松弛操作 //j從t這個(gè)點(diǎn)過來的路徑更短,前驅(qū)變?yōu)閠path[j] = t;//從t走過來,則可以召集的人數(shù)就是到t可召集的人數(shù)+j這個(gè)點(diǎn)的人數(shù)tot[j] = tot[t]+city[j];dis[j] = dis[t]+w;//到t有幾種走法,就到j(luò)有幾種road[j] = road[t];//由于j點(diǎn)最短距離被更新,需要壓入隊(duì)列q.push({dis[j], j});}else if(dis[j] == dis[t]+w){//有另外的走法使得最短路相同,更新方案數(shù)road[j] += road[t];//如果可以召集更多的人,更新方案if (tot[j] < tot[t] + city[j]) {tot[j] = tot[t] + city[j];path[j] = t;}}}} }void print(int d){ //路徑打印 int now = d;vector<int> v;while(now != -1){v.push_back(now);now = path[now];}for (int i = v.size()-1 ; i >= 0 ; i -- )printf("%d%c", v[i], i==0 ? '\n' : ' '); }int main(){cin>>n>>m>>s>>d;for(int i = 0 ; i < n ; i ++ ) cin>>city[i]; for(int i = 0 ; i < m ; i ++ ){int x, y, w;cin>>x>>y>>w;mp[x].push_back({y, w});mp[y].push_back({x, w});}DJ(s);cout<<road[d]<<" "<<tot[d]<<endl;print(d);return 0; }

L2-002 鏈表去重 模擬鏈表

給定一個(gè)帶整數(shù)鍵值的鏈表 L,你需要把其中絕對值重復(fù)的鍵值結(jié)點(diǎn)刪掉。即對每個(gè)鍵值 K,只有第一個(gè)絕對值等于 K 的結(jié)點(diǎn)被保留。同時(shí),所有被刪除的結(jié)點(diǎn)須被保存在另一個(gè)鏈表上。例如給定 L 為 21→-15→-15→-7→15,你需要輸出去重后的鏈表 21→-15→-7,還有被刪除的鏈表 -15→15。

輸入格式:

輸入在第一行給出 L 的第一個(gè)結(jié)點(diǎn)的地址和一個(gè)正整數(shù) N(≤105,為結(jié)點(diǎn)總數(shù))。一個(gè)結(jié)點(diǎn)的地址是非負(fù)的 5 位整數(shù),空地址 NULL 用 ?1 來表示。

隨后 N 行,每行按以下格式描述一個(gè)結(jié)點(diǎn):

地址 鍵值 下一個(gè)結(jié)點(diǎn)

其中地址是該結(jié)點(diǎn)的地址,鍵值是絕對值不超過104的整數(shù),下一個(gè)結(jié)點(diǎn)是下個(gè)結(jié)點(diǎn)的地址。

輸出格式:

首先輸出去重后的鏈表,然后輸出被刪除的鏈表。每個(gè)結(jié)點(diǎn)占一行,按輸入的格式輸出。

輸入樣例:

00100 5 99999 -7 87654 23854 -15 00000 87654 15 -1 00000 -15 99999 00100 21 23854

輸出樣例:

00100 21 23854 23854 -15 99999 99999 -7 -1 00000 -15 87654 87654 15 -1

分析:

數(shù)據(jù)量不大,可以直接用數(shù)組模擬鏈表,地址當(dāng)做數(shù)組下標(biāo),考察基本的刪除操作和尾插法。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;struct node{int id,val,next,absval; }LNode[N]; bool cmp(node a,node b){return a.id<b.id; } pair<int,pair<int,int> > p; vector<pair<int,pair<int,int> > > com,del; int f[N];int main(){int ID,N,i;cin>>ID>>N;for(i=0;i<N;i++){cin>>LNode[i].id>>LNode[i].val>>LNode[i].next;LNode[i].absval=fabs(LNode[i].val);f[abs(LNode[i].val)]=0; //避免二分時(shí)重復(fù)計(jì)算 }sort(LNode,LNode+N,cmp);while(ID!=-1){ //用-1結(jié)束,別用N計(jì)數(shù) int l=0,r=N-1; //二分查找下一節(jié)點(diǎn) while(l<r){int mid=(l+r)/2;if(LNode[mid].id<ID) l=mid+1;else r=mid;}p.first=LNode[l].id;p.second.first=LNode[l].val;p.second.second=LNode[l].next;if(f[LNode[l].absval]==0){f[LNode[l].absval]=1;com.push_back(p);}elsedel.push_back(p);ID=LNode[l].next;}for(i=0;i<com.size();i++){if(i<com.size()-1)printf("%05d %d %05d\n",com[i].first,com[i].second.first,com[i+1].first);elseprintf("%05d %d -1\n",com[i].first,com[i].second.first);}for(i=0;i<del.size();i++){if(i<del.size()-1)printf("%05d %d %05d\n",del[i].first,del[i].second.first,del[i+1].first);elseprintf("%5d %d -1\n",del[i].first,del[i].second.first);}return 0; }

L2-003 月餅 貪心

月餅是中國人在中秋佳節(jié)時(shí)吃的一種傳統(tǒng)食品,不同地區(qū)有許多不同風(fēng)味的月餅。現(xiàn)給定所有種類月餅的庫存量、總售價(jià)、以及市場的最大需求量,請你計(jì)算可以獲得的最大收益是多少。

注意:銷售時(shí)允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有 3 種月餅,其庫存量分別為 18、15、10 萬噸,總售價(jià)分別為 75、72、45 億元。如果市場的最大需求量只有 20 萬噸,那么我們最大收益策略應(yīng)該是賣出全部 15 萬噸第 2 種月餅、以及 5 萬噸第 3 種月餅,獲得 72 + 45/2 = 94.5(億元)。

輸入格式:

每個(gè)輸入包含一個(gè)測試用例。每個(gè)測試用例先給出一個(gè)不超過 1000 的正整數(shù) N 表示月餅的種類數(shù)、以及不超過 500(以萬噸為單位)的正整數(shù) D 表示市場最大需求量。隨后一行給出 N 個(gè)正數(shù)表示每種月餅的庫存量(以萬噸為單位);最后一行給出 N 個(gè)正數(shù)表示每種月餅的總售價(jià)(以億元為單位)。數(shù)字間以空格分隔。

輸出格式:

對每組測試用例,在一行中輸出最大收益,以億元為單位并精確到小數(shù)點(diǎn)后 2 位。

輸入樣例:

3 20 18 15 10 75 72 45

輸出樣例:

94.50

分析:

按照單價(jià)排序,優(yōu)先選擇單價(jià)最高的。庫存量和總售價(jià)不一定為整數(shù)

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;struct node{double num,price,dj; }Mooncake[N]; bool cmp(node a,node b){ return a.dj>b.dj; } int main(){int n,m,k=0,i;cin>>n>>m;for(i=0;i<n;i++) cin>>Mooncake[i].num;for(i=0;i<n;i++) cin>>Mooncake[i].price;for(i=0;i<n;i++) Mooncake[i].dj=Mooncake[i].price/Mooncake[i].num;sort(Mooncake,Mooncake+n,cmp);double ans=0;while(k<n){if(Mooncake[k].num<=m){m-=Mooncake[k].num;ans+=Mooncake[k].price;}else{ans+=Mooncake[k].dj*m;break;}k++;}printf("%.2lf\n",ans);return 0; }

L2-004 這是二叉搜索樹嗎? 數(shù)據(jù)結(jié)構(gòu)

一棵二叉搜索樹可被遞歸地定義為具有下列性質(zhì)的二叉樹:對于任一結(jié)點(diǎn),

  • 其左子樹中所有結(jié)點(diǎn)的鍵值小于該結(jié)點(diǎn)的鍵值;
  • 其右子樹中所有結(jié)點(diǎn)的鍵值大于等于該結(jié)點(diǎn)的鍵值;
  • 其左右子樹都是二叉搜索樹。

所謂二叉搜索樹的“鏡像”,即將所有結(jié)點(diǎn)的左右子樹對換位置后所得到的樹。

給定一個(gè)整數(shù)鍵值序列,現(xiàn)請你編寫程序,判斷這是否是對一棵二叉搜索樹或其鏡像進(jìn)行前序遍歷的結(jié)果。

輸入格式:

輸入的第一行給出正整數(shù) N(≤1000)。隨后一行給出 N 個(gè)整數(shù)鍵值,其間以空格分隔。

輸出格式:

如果輸入序列是對一棵二叉搜索樹或其鏡像進(jìn)行前序遍歷的結(jié)果,則首先在一行中輸出 YES ,然后在下一行輸出該樹后序遍歷的結(jié)果。數(shù)字間有 1 個(gè)空格,一行的首尾不得有多余空格。若答案是否,則輸出 NO。

輸入樣例 1:

7 8 6 5 7 10 8 11

輸出樣例 1:

YES 5 7 6 8 11 10 8

輸入樣例 2:

7 8 10 11 8 6 7 5

輸出樣例 2:

YES 11 8 10 7 5 6 8

輸入樣例 3:

7 8 6 8 5 10 9 11

輸出樣例 3:

NO

分析:

因?yàn)榍靶虮闅v是根左右,所以在插入某個(gè)孩子節(jié)點(diǎn)時(shí),它的父節(jié)點(diǎn)肯定已經(jīng)被插入了,又由于搜索樹的限制關(guān)系(小的左邊,大的右邊),所以可以確定一棵唯一的二叉搜索樹,然后對其進(jìn)行兩種不同的前序遍歷,再分別與題目所給的序列比較即可。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;struct node{node *l,*r;int data; }; typedef node* Tree; //s1為正常前序遍歷,s2為左右兒子顛倒的前序遍歷,s為輸入序列 vector<int> s1,s2,s,ans; int n,cnt,x; Tree build(Tree root,int x){if (root == NULL) {//到達(dá)最底部,創(chuàng)建新節(jié)點(diǎn),并賦值root = new(node);root->l = root->r = NULL;root->data = x;}//x小于當(dāng)前節(jié)點(diǎn),說明x在root的左半邊,向左遞歸else if (x < root->data) root->l = build(root->l, x);else root->r = build(root->r, x);return root; } //正常前序遍歷 void pre1(Tree root) {if (root == NULL) return;s1.push_back(root->data);pre1(root->l);pre1(root->r); } //左右顛倒的前序 void pre2(Tree root) {if (root == NULL) return;s2.push_back(root->data);pre2(root->r);pre2(root->l); } //正常后序 void post1(Tree root) {if (root == NULL) return;post1(root->l);post1(root->r);ans.push_back(root->data); } //左右顛倒的后序 void post2(Tree root) {if (root == NULL) return;post2(root->r);post2(root->l);ans.push_back(root->data); } //比較兩個(gè)序列是否完全相同 bool judge(vector<int> a) {for (int i = 0; i < a.size(); i++) if (a[i] != s[i]) return 0;return 1; } int main(){cin >> n;for (int i = 0; i < n; i ++) cin >> x,s.push_back(x);Tree root=NULL;for (int i = 0; i < n; i ++)root = build(root, s[i]);pre1(root); pre2(root);if (judge(s1)) {//說明所給序列是二叉搜索樹的前序遍歷post1(root);puts("YES");for (int i = 0; i < n; i++)printf("%d%c", ans[i], i == n - 1 ? '\n' : ' ');}else if (judge(s2)) {//是鏡像的前序遍歷puts("YES");post2(root);for (int i = 0; i < n; i++)printf("%d%c", ans[i], i == n - 1 ? '\n' : ' ');}else //不是二叉搜索樹puts("NO");return 0; }

L2-005 集合相似度 STL

給定兩個(gè)整數(shù)集合,它們的相似度定義為:Nc/Nt×100%。其中Nc是兩個(gè)集合都有的不相等整數(shù)的個(gè)數(shù),Nt是兩個(gè)集合一共有的不相等整數(shù)的個(gè)數(shù)。你的任務(wù)就是計(jì)算任意一對給定集合的相似度。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤50),是集合的個(gè)數(shù)。隨后N行,每行對應(yīng)一個(gè)集合。每個(gè)集合首先給出一個(gè)正整數(shù)M(≤104),是集合中元素的個(gè)數(shù);然后跟M個(gè)[0,109]區(qū)間內(nèi)的整數(shù)。

之后一行給出一個(gè)正整數(shù)K(≤2000),隨后K行,每行對應(yīng)一對需要計(jì)算相似度的集合的編號(集合從1到N編號)。數(shù)字間以空格分隔。

輸出格式:

對每一對需要計(jì)算的集合,在一行中輸出它們的相似度,為保留小數(shù)點(diǎn)后2位的百分比數(shù)字。

輸入樣例:

3 3 99 87 101 4 87 101 5 87 7 99 101 18 5 135 18 99 2 1 2 1 3

輸出樣例:

50.00% 33.33%

分析:

最多50個(gè)集合,預(yù)處理出全部的組合,C50 2=49?25, 用set存放所有的集合,然后預(yù)處理的時(shí)候遍歷兩個(gè)set中較小的那個(gè),在較大的中查找是否存在,將集合i和集合j共同擁有的數(shù)量存在both[i][j]中。Nc就是both[i][j],Nt就是兩個(gè)集合size加起來再減掉both[i][j]。時(shí)間復(fù)雜度:25?49?10000?log(10000)=49000000。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;set<int> s[55];int main(){int n; cin>>n; int i,j,m,x;for(i=0;i<n;i++){cin>>m;for(j=0;j<m;j++){cin>>x;s[i].insert(x);}}int q; cin>>q;for(i=0;i<q;i++){int x,y;cin>>x>>y;x--,y--;int num1=0,num2=s[x].size()+s[y].size();for(set<int>::iterator i=s[x].begin();i!=s[x].end();i++){if(s[y].count(*i)!=0) num1++; //注意指針運(yùn)算符 // cout<<*i<<endl; }printf("%.2lf%\n",num1*100.0/(num2-num1));}return 0; }

L2-006 樹的遍歷 數(shù)據(jù)結(jié)構(gòu)

給定一棵二叉樹的后序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這里假設(shè)鍵值都是互不相等的正整數(shù)。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤30),是二叉樹中結(jié)點(diǎn)的個(gè)數(shù)。第二行給出其后序遍歷序列。第三行給出其中序遍歷序列。數(shù)字間以空格分隔。

輸出格式:

在一行中輸出該樹的層序遍歷的序列。數(shù)字間以1個(gè)空格分隔,行首尾不得有多余空格。

輸入樣例:

7 2 3 1 5 7 6 4 1 2 3 4 5 6 7

輸出樣例:

4 1 6 3 5 7 2

分析:

知道中序+后序或者前序,就能確定一棵唯一的二叉樹。所以此題知道后序+中序,可以建立二叉樹后層序遍歷。由于后序是左右根,所以最后面的節(jié)點(diǎn)就是根,然后在中序中找到這個(gè)根的位置,左邊就是左子樹的范圍,右邊就是右子樹的范圍,遞歸處理即可。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll; struct node{node *lson,*rson;int val; }; typedef node* Tree; vector<int> Mid_order, Post_order; int n,x,i,now; Tree build(int l,int r){ //中序和后序建樹 if(l>r) return NULL;Tree root = new(node);root -> val = Post_order[now];int mid = l;while(Post_order[now] != Mid_order[mid])mid++;now--;root -> rson = build(mid+1,r);root -> lson = build(l,mid-1);return root; }void print(Tree root){ //層序遍歷輸出 queue<Tree> q;q.push(root);int tot = 0;while(!q.empty()){Tree t = q.front();if(t->lson != NULL)q.push(t->lson);if(t->rson != NULL)q.push(t->rson);printf("%d",t->val);q.pop();tot++;if(tot<n)cout<<' ';else cout<<endl;} }int main(){cin>>n;for(i = 0 ; i < n ; i ++)cin>>x,Post_order.push_back(x);for(i = 0 ; i < n ; i ++)cin>>x,Mid_order.push_back(x);now = n - 1;print(build(0,n-1));return 0; }

L2-007 家庭房產(chǎn) 并查集

給定每個(gè)人的家庭成員和其自己名下的房產(chǎn),請你統(tǒng)計(jì)出每個(gè)家庭的人口數(shù)、人均房產(chǎn)面積及房產(chǎn)套數(shù)。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤1000),隨后N行,每行按下列格式給出一個(gè)人的房產(chǎn):

編號 父 母 k 孩子1 ... 孩子k 房產(chǎn)套數(shù) 總面積

其中編號是每個(gè)人獨(dú)有的一個(gè)4位數(shù)的編號;父和母分別是該編號對應(yīng)的這個(gè)人的父母的編號(如果已經(jīng)過世,則顯示-1);k(0≤k≤5)是該人的子女的個(gè)數(shù);孩子i是其子女的編號。

輸出格式:

首先在第一行輸出家庭個(gè)數(shù)(所有有親屬關(guān)系的人都屬于同一個(gè)家庭)。隨后按下列格式輸出每個(gè)家庭的信息:

家庭成員的最小編號 家庭人口數(shù) 人均房產(chǎn)套數(shù) 人均房產(chǎn)面積

其中人均值要求保留小數(shù)點(diǎn)后3位。家庭信息首先按人均面積降序輸出,若有并列,則按成員編號的升序輸出。

輸入樣例:

10 6666 5551 5552 1 7777 1 100 1234 5678 9012 1 0002 2 300 8888 -1 -1 0 1 1000 2468 0001 0004 1 2222 1 500 7777 6666 -1 0 2 300 3721 -1 -1 1 2333 2 150 9012 -1 -1 3 1236 1235 1234 1 100 1235 5678 9012 0 1 50 2222 1236 2468 2 6661 6662 1 300 2333 -1 3721 3 6661 6662 6663 1 100

輸出樣例:

3 8888 1 1.000 1000.000 0001 15 0.600 100.000 5551 4 0.750 100.000

分析:

用并查集維護(hù)集合關(guān)系,由于要輸出最小編號,合并時(shí)將較大的合并給較小的點(diǎn),由于編號一共最多到9999,記錄每個(gè)編號是否出現(xiàn)過,然后遍歷一遍,將每個(gè)編號所擁有的房產(chǎn)等信息貢獻(xiàn)給父節(jié)點(diǎn)。之后按照題目要求排序輸出即可。
坑:編號可能會有0000

代碼:

#include<bits/stdc++.h> using namespace std; #define PII pair<int,int> const int N = 1e4+10;struct node{//父節(jié)點(diǎn)//分別表示 編號,人口,房產(chǎn)數(shù)量,房產(chǎn)面積int id, kou, fang, mian;//分別表示 人均房產(chǎn)套數(shù),人均房產(chǎn)面積double x1, x2;const bool operator < (const node &t) const {if(t.x2 == x2) return id < t.id;return x2 > t.x2;} }p[N];int n; int fa[N],vis[N],num[N],s[N];void init(int n) { for ( int i = 0 ; i < n ; i++ ) fa[i] = i; } //初始化 int find(int x) { return fa[x] == x ? x : fa[x] = find( fa[x] ); } //查找 路徑壓縮 void merge(int a,int b){ a = find(a), b = find(b); fa[max(a,b)] = min(a,b);} //家族最小值作為祖先 int main(){cin>>n;//初始化 init(N);while(n--){int id,fid,mid,k,ID;cin>>id>>fid>>mid>>k;vis[id]=1;//活人編號從0開始if(fid >= 0)merge(id,fid), vis[fid]=1;if(mid >= 0)merge(id,mid), vis[mid]=1;while(k--){int cid; cin>>cid;vis[cid] = 1;merge(id,cid);}cin>>num[id]>>s[id];}//將每個(gè)編號所擁有的房產(chǎn)等信息貢獻(xiàn)給父節(jié)點(diǎn)for(int i = 0 ; i < N ; i ++) {if(vis[i]) {int x = find(i);p[x].kou ++;p[x].fang += num[i];p[x].mian += s[i];}}vector<node> ans;for(int i = 0; i < N; i++) {if(vis[i] && find(i) == i) {p[i].id = i;p[i].x1 = p[i].fang * 1.0 / p[i].kou;p[i].x2 = p[i].mian * 1.0 / p[i].kou;ans.push_back(p[i]);}}sort(ans.begin(), ans.end());cout << ans.size() << endl;for(int i = 0; i < ans.size(); i++) printf("%04d %d %.3lf %.3lf\n",ans[i].id,ans[i].kou,ans[i].x1,ans[i].x2); return 0; }

L2-008 最長對稱子串 字符串

對給定的字符串,本題要求你輸出最長對稱子串的長度。例如,給定Is PAT&TAP symmetric?,最長對稱子串為s PAT&TAP s,于是你應(yīng)該輸出11。

輸入格式:

輸入在一行中給出長度不超過1000的非空字符串。

輸出格式:

在一行中輸出最長對稱子串的長度。

輸入樣例:

Is PAT&TAP symmetric?

輸出樣例:

11

分析:

回文串問題,manacher模板題

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;string s,s_new; int p[N*2];void init(){ //初始化s_new+='$';s_new+='#';for(int i=0;i<s.size();i++){s_new+=s[i];s_new+='#';}s_new+='\0'; } void Manacher(){init();int mx=0,di,ans=0;for(int i=0;i<s_new.size();i++){p[i] = mx > i ? min(p[2 * di - i], mx - i) : 1;while(s_new[i-p[i]] == s_new[i+p[i]]) p[i]++;if(i+p[i] > mx){mx = i+p[i];di = i;ans = max(ans,p[i]);}}printf("%d\n",ans-1); } int main(){getline(cin,s);Manacher();return 0; }

L2-009 搶紅包 排序

沒有人沒搶過紅包吧…… 這里給出N個(gè)人之間互相發(fā)紅包、搶紅包的記錄,請你統(tǒng)計(jì)一下他們搶紅包的收獲。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤104),即參與發(fā)紅包和搶紅包的總?cè)藬?shù),則這些人從1到N編號。隨后N行,第i行給出編號為i的人發(fā)紅包的記錄,格式如下:

K**N1P1?NKP**K

其中K(0≤K≤20)是發(fā)出去的紅包個(gè)數(shù),N**i是搶到紅包的人的編號,P**i(>0)是其搶到的紅包金額(以分為單位)。注意:對于同一個(gè)人發(fā)出的紅包,每人最多只能搶1次,不能重復(fù)搶。

輸出格式:

按照收入金額從高到低的遞減順序輸出每個(gè)人的編號和收入金額(以元為單位,輸出小數(shù)點(diǎn)后2位)。每個(gè)人的信息占一行,兩數(shù)字間有1個(gè)空格。如果收入金額有并列,則按搶到紅包的個(gè)數(shù)遞減輸出;如果還有并列,則按個(gè)人編號遞增輸出。

輸入樣例:

10 3 2 22 10 58 8 125 5 1 345 3 211 5 233 7 13 8 101 1 7 8800 2 1 1000 2 1000 2 4 250 10 320 6 5 11 9 22 8 33 7 44 10 55 4 2 1 3 8800 2 1 23 2 123 1 8 250 4 2 121 4 516 7 112 9 10

輸出樣例:

1 11.63 2 3.63 8 3.63 3 2.11 7 1.69 6 -1.67 9 -2.18 10 -3.26 5 -3.26 4 -12.32

分析:

就是細(xì)節(jié)題,題目讓你干什么就干什么。結(jié)構(gòu)體中自定義排序規(guī)則

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;struct node{int id,money,num;const bool operator < (const node &t) const {if(t.money == money) return id > t.id;return money > t.money;} }peo[N];int main(){int n; cin>>n;for(int i = 1 ; i <= n ; i ++) peo[i].id = i;for(int i = 1 ; i <= n ; i ++){int k,sum=0; cin>>k;for(int j = 0 ; j < k ; j++){int x,m; cin>>x>>m;peo[x].money += m;sum += m;peo[x].num ++;}peo[i].money -= sum;}sort(peo+1, peo+1+n);for(int i = 1 ; i <= n ; i ++)printf("%d %.2lf\n", peo[i].id, peo[i].money*1.0/100);return 0; }

L2-010 排座位 dfs

布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個(gè)死對頭排到同一張宴會桌旁!這個(gè)艱巨任務(wù)現(xiàn)在就交給你,對任何一對客人,請編寫程序告訴主人他們是否能被安排同席。

輸入格式:

輸入第一行給出3個(gè)正整數(shù):N(≤100),即前來參宴的賓客總?cè)藬?shù),則這些人從1到N編號;M為已知兩兩賓客之間的關(guān)系數(shù);K為查詢的條數(shù)。隨后M行,每行給出一對賓客之間的關(guān)系,格式為:賓客1 賓客2 關(guān)系,其中關(guān)系為1表示是朋友,-1表示是死對頭。注意兩個(gè)人不可能既是朋友又是敵人。最后K行,每行給出一對需要查詢的賓客編號。

這里假設(shè)朋友的朋友也是朋友。但敵人的敵人并不一定就是朋友,朋友的敵人也不一定是敵人。只有單純直接的敵對關(guān)系才是絕對不能同席的。

輸出格式:

對每個(gè)查詢輸出一行結(jié)果:如果兩位賓客之間是朋友,且沒有敵對關(guān)系,則輸出No problem;如果他們之間并不是朋友,但也不敵對,則輸出OK;如果他們之間有敵對,然而也有共同的朋友,則輸出OK but...;如果他們之間只有敵對關(guān)系,則輸出No way。

輸入樣例:

7 8 4 5 6 1 2 7 -1 1 3 1 3 4 1 6 7 -1 1 2 1 1 4 1 2 3 -1 3 4 5 7 2 3 7 2

輸出樣例:

No problem OK OK but... No way

分析:

N≤100,說明可以直接建圖后進(jìn)行dfs遍歷,只遍歷邊權(quán)為1的點(diǎn),如果可以從a走到b,說明有共同朋友,再判斷mp[a][b]是否為-1即可。其他情況類似。

代碼:

#include <bits/stdc++.h> using namespace std; int n, m, k, a, b, c; int mp[111][111],vis[111];bool dfs(int now,int end) {if(now==end) return true;for(int i=1;i<=n;i++){if(mp[now][i]==1&&vis[i]==0){vis[now]=1;if(dfs(i,end)) return true;vis[now]=0;}}return false; }int main() {cin>>n>>m>>k;for (int i=0;i<m;i++) {cin>>a>>b>>c;mp[a][b]=mp[b][a]=c;}while (k--) {cin>>a>>b;for(int i=1;i<=n;i++) vis[i]=0;vis[a]=1;bool flag=dfs(a,b);if(flag && mp[a][b]!=-1) cout<<"No problem"<<endl;if(flag && mp[a][b]==-1) cout<<"OK but..."<<endl;if(!flag && mp[a][b]!=-1) cout<<"OK"<<endl;if(!flag && mp[a][b]==-1) cout<<"No way"<<endl;}return 0; }

L2-011 玩轉(zhuǎn)二叉樹 數(shù)據(jù)結(jié)構(gòu)

給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個(gè)鏡面反轉(zhuǎn),再輸出反轉(zhuǎn)后的層序遍歷的序列。所謂鏡面反轉(zhuǎn),是指將所有非葉結(jié)點(diǎn)的左右孩子對換。這里假設(shè)鍵值都是互不相等的正整數(shù)。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤30),是二叉樹中結(jié)點(diǎn)的個(gè)數(shù)。第二行給出其中序遍歷序列。第三行給出其前序遍歷序列。數(shù)字間以空格分隔。

輸出格式:

在一行中輸出該樹反轉(zhuǎn)后的層序遍歷的序列。數(shù)字間以1個(gè)空格分隔,行首尾不得有多余空格。

輸入樣例:

7 1 2 3 4 5 6 7 4 1 3 2 6 5 7

輸出樣例:

4 6 1 7 5 3 2

分析:

就是兩種遍歷方式求另外一種,PTA好喜歡這種題,鏡面翻轉(zhuǎn)其實(shí)就是在求層序的時(shí)候反著放入隊(duì)列就行。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;struct node{node *l,*r;int data; }; typedef node* Tree; int i,n,x,now=0; vector<int> pre_order,mid_order; Tree build(int l,int r){ //前序和中序建樹 if(l>r) return NULL;Tree root=new(node);root->data=pre_order[now];int mid=l;while(pre_order[now] != mid_order[mid]) mid++;now++;root->l = build(l, mid - 1);root->r = build(mid + 1, r);return root; } void printf(Tree root){ //層序輸出 queue<Tree> q;q.push(root);int tot=0;while(q.size()){Tree t=q.front();tot++;printf("%d%c",t->data,tot==n ? '\n' : ' ');q.pop();if(t->r!=NULL) q.push(t->r);if(t->l!=NULL) q.push(t->l); } } int main(){cin>>n;for(i=1;i<=n;i++) cin>>x,mid_order.push_back(x);for(i=1;i<=n;i++)cin>>x,pre_order.push_back(x);printf(build(0,n-1));return 0; }

L2-013 紅色警報(bào) 并查集

戰(zhàn)爭中保持各個(gè)城市間的連通性非常重要。本題要求你編寫一個(gè)報(bào)警程序,當(dāng)失去一個(gè)城市導(dǎo)致國家被分裂為多個(gè)無法連通的區(qū)域時(shí),就發(fā)出紅色警報(bào)。注意:若該國本來就不完全連通,是分裂的k個(gè)區(qū)域,而失去一個(gè)城市并不改變其他城市之間的連通性,則不要發(fā)出警報(bào)。

輸入格式:

輸入在第一行給出兩個(gè)整數(shù)N(0 < N ≤ 500)和M(≤ 5000),分別為城市個(gè)數(shù)(于是默認(rèn)城市從0到N-1編號)和連接兩城市的通路條數(shù)。隨后M行,每行給出一條通路所連接的兩個(gè)城市的編號,其間以1個(gè)空格分隔。在城市信息之后給出被攻占的信息,即一個(gè)正整數(shù)K和隨后的K個(gè)被攻占的城市的編號。

注意:輸入保證給出的被攻占的城市編號都是合法的且無重復(fù),但并不保證給出的通路沒有重復(fù)。

輸出格式:

對每個(gè)被攻占的城市,如果它會改變整個(gè)國家的連通性,則輸出Red Alert: City k is lost!,其中k是該城市的編號;否則只輸出City k is lost.即可。如果該國失去了最后一個(gè)城市,則增加一行輸出Game Over.。

輸入樣例:

5 4 0 1 1 3 3 0 0 4 5 1 2 0 4 3

輸出樣例:

City 1 is lost. City 2 is lost. Red Alert: City 0 is lost! City 4 is lost. City 3 is lost. Game Over.

分析:

每次刪去一個(gè)點(diǎn),可以用一個(gè)數(shù)組記錄標(biāo)記被刪去的點(diǎn),每刪去一個(gè)點(diǎn),對所有不包含被刪去點(diǎn)的邊求一次并查集,檢查有幾個(gè)集合,如果比之前多則說明有國家被分裂了,注意已經(jīng)被消滅的城市不會算入一個(gè)集合。

代碼:

#include<bits/stdc++.h> using namespace std; typedef pair<int,int> PII; const int N=505;int n,m,k,x,y; int fa[N],vis[N]; vector<PII> v;void init(int n) { for ( int i = 0 ; i < n ; i++ ) fa[i] = i; } //初始化 int find(int x) { return fa[x] == x ? x : fa[x] = find( fa[x] ); } //查找 路徑壓縮 void merge(int a, int b) { a = find(a), b = find(b), fa[b] = a; } //合并 int fun(int x){init(n);vis[x]=0; //x城市被攻占for(int i=0;i<v.size();i++)if(vis[v[i].first]+vis[v[i].second]==2)merge(v[i].first,v[i].second);int res=0;for(int i=0;i<n;i++)if(vis[i]==1&&fa[i]==i)res++;return res; }int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>x>>y;v.push_back({x,y});}cin>>k;for(int i=0;i<n;i++) vis[i]=1;int num=fun(n);while(k--){cin>>x;int t=fun(x);if(t>num) printf("Red Alert: City %d is lost!\n",x);else printf("City %d is lost.\n",x);if(t==0) printf("Game Over.\n");num=t;} }

L2-014 列車調(diào)度 STL

火車站的列車調(diào)度鐵軌的結(jié)構(gòu)如下圖所示。

兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進(jìn)入,最后從出口離開。在圖中有9趟列車,在入口處按照{(diào)8,4,2,5,3,9,1,6,7}的順序排隊(duì)等待進(jìn)入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條平行鐵軌用于調(diào)度?

輸入格式:

輸入第一行給出一個(gè)整數(shù)N (2 ≤ N ≤105),下一行給出從1到N的整數(shù)序號的一個(gè)重排列。數(shù)字間以空格分隔。

輸出格式:

在一行中輸出可以將輸入的列車按序號遞減的順序調(diào)離所需要的最少的鐵軌條數(shù)。

輸入樣例:

9 8 4 2 5 3 9 1 6 7

輸出樣例:

4

分析:

可以這樣調(diào)度:先查看當(dāng)前所有軌道的最左邊火車編號是否小于當(dāng)前編號,插入到最小的比當(dāng)前火車編號大的火車后,如果不存在則開辟新軌道??芍?#xff0c;軌道的最左端火車編號一定是隨軌道下標(biāo)而遞增的,可以用二分查找快速找到那條軌道。當(dāng)然,可以用set更為方便。

代碼:

#include<iostream> #include<set> using namespace std; int main() {int n; scanf("%d",&n);set<int>sc;for(int i=0;i<n;i++){int k; scanf("%d",&k);set<int>::iterator it=sc.lower_bound(k);if(it!=sc.end()){sc.erase(it);sc.insert(k);}elsesc.insert(k);}cout<<sc.size(); }

L2-015 互評成績 排序

學(xué)生互評作業(yè)的簡單規(guī)則是這樣定的:每個(gè)人的作業(yè)會被k個(gè)同學(xué)評審,得到k個(gè)成績。系統(tǒng)需要去掉一個(gè)最高分和一個(gè)最低分,將剩下的分?jǐn)?shù)取平均,就得到這個(gè)學(xué)生的最后成績。本題就要求你編寫這個(gè)互評系統(tǒng)的算分模塊。

輸入格式:

輸入第一行給出3個(gè)正整數(shù)N(3 < N ≤104,學(xué)生總數(shù))、k(3 ≤ k ≤ 10,每份作業(yè)的評審數(shù))、M(≤ 20,需要輸出的學(xué)生數(shù))。隨后N行,每行給出一份作業(yè)得到的k個(gè)評審成績(在區(qū)間[0, 100]內(nèi)),其間以空格分隔。

輸出格式:

按非遞減順序輸出最后得分最高的M個(gè)成績,保留小數(shù)點(diǎn)后3位。分?jǐn)?shù)間有1個(gè)空格,行首尾不得有多余空格。

輸入樣例:

6 5 3 88 90 85 99 60 67 60 80 76 70 90 93 96 99 99 78 65 77 70 72 88 88 88 88 88 55 55 55 55 55

輸出樣例:

87.667 88.000 96.000

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;int n,k,m,i,j,x; vector<int> vi; vector<double> vd;int main(){cin>>n>>k>>m;for(i = 1 ; i <= n ; i++){vi.clear();for(j = 0 ; j < k ; j ++)cin>>x,vi.push_back(x);sort(vi.begin(), vi.end());vi.erase(vi.begin());vi.erase(vi.end()-1);int sum = 0;for(j = 0 ; j < vi.size() ; j++) sum += vi[j];vd.push_back(sum*1.0/(k-2));}sort(vd.begin(), vd.end());for(i = vd.size() - m ; i < vd.size() ; i++)printf("%.3lf%c",vd[i],i==vd.size()-1?'\n':' ');return 0; }

L2-016 愿天下有情人都是失散多年的兄妹 dfs

呵呵。大家都知道五服以內(nèi)不得通婚,即兩個(gè)人最近的共同祖先如果在五代以內(nèi)(即本人、父母、祖父母、曾祖父母、高祖父母)則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?

輸入格式:

輸入第一行給出一個(gè)正整數(shù)()N(2≤N≤104),隨后N行,每行按以下格式給出一個(gè)人的信息:

本人ID 性別 父親ID 母親ID
其中ID是5位數(shù)字,每人不同;性別M代表男性、F代表女性。如果某人的父親或母親已經(jīng)不可考,則相應(yīng)的ID位置上標(biāo)記為-1。

接下來給出一個(gè)正整數(shù)K,隨后K行,每行給出一對有情人的ID,其間以空格分隔。

注意:題目保證兩個(gè)人是同輩,每人只有一個(gè)性別,并且血緣關(guān)系網(wǎng)中沒有亂倫或隔輩成婚的情況。

輸出格式:

對每一對有情人,判斷他們的關(guān)系是否可以通婚:如果兩人是同性,輸出Never Mind;如果是異性并且關(guān)系出了五服,輸出Yes;如果異性關(guān)系未出五服,輸出No。

輸入樣例:

24 00001 M 01111 -1 00002 F 02222 03333 00003 M 02222 03333 00004 F 04444 03333 00005 M 04444 05555 00006 F 04444 05555 00007 F 06666 07777 00008 M 06666 07777 00009 M 00001 00002 00010 M 00003 00006 00011 F 00005 00007 00012 F 00008 08888 00013 F 00009 00011 00014 M 00010 09999 00015 M 00010 09999 00016 M 10000 00012 00017 F -1 00012 00018 F 11000 00013 00019 F 11100 00018 00020 F 00015 11110 00021 M 11100 00020 00022 M 00016 -1 00023 M 10012 00017 00024 M 00022 10013 9 00021 00024 00019 00024 00011 00012 00022 00018 00001 00004 00013 00016 00017 00015 00019 00021 00010 00011

輸出樣例:

Never Mind Yes Never Mind No Yes No Yes No No

分析

先跑一遍dfs標(biāo)記第一個(gè)人的所有五代內(nèi)的長輩,然后再dfs一遍第二個(gè)人的所有五代內(nèi)的長輩,檢查是否有重復(fù)。有個(gè)坑點(diǎn)就是:父母的性別都是已知的,但是可能不會告訴你父母的祖輩情況,所以要同時(shí)記錄父母的性別,否則父母性別默認(rèn)初始值都是相同的了。還有個(gè)我自己的問題,直接在結(jié)構(gòu)體內(nèi)賦值的方式進(jìn)行初始化,這樣是不可行的,正確方法是要么循環(huán)遍歷初始化,要么寫一個(gè)構(gòu)造函數(shù)。

代碼

#include <bits/stdc++.h> #define LL long long using namespace std; const int maxn = 1e5+10; const int inf = 0x3f3f3f3f; const double PI = acos(-1.0); typedef pair<int,int> PII; struct node {int fa, ma, sex , flag;node() {flag = 0;fa = ma = -1;} }peo[maxn]; int f; int vis[maxn]; void dfs(int x, int ceng) {if(x == -1 || ceng > 5) return;vis[x] = 1;if (peo[x].flag == 0) return;dfs(peo[x].ma, ceng + 1);dfs(peo[x].fa,ceng+1); } void dfs2(int x, int ceng) {if(x == -1 || ceng > 5 || f == 1) return;if(vis[x] == 1) {f = 1;return;}if (peo[x].flag == 0) return;dfs2(peo[x].ma,ceng+1);dfs2(peo[x].fa,ceng+1); }int main(int argc, char const *argv[]) {int n;cin >> n;for(int i = 1; i <= n; i++) {string s;int id;cin >> id >> s;cin >> peo[id].fa >> peo[id].ma;peo[id].flag = 1;if(s[0] == 'M') peo[id].sex = 1;else peo[id].sex = 0;if(peo[id].fa != -1)peo[peo[id].fa].sex = 1;if(peo[id].ma != -1)peo[peo[id].ma].sex = 0;}int k;cin >> k;while(k--) {memset(vis, 0 ,sizeof vis);int x, y;cin >> x >> y;if(peo[x].sex == peo[y].sex) puts("Never Mind");else {f = 0;dfs(x,1);dfs2(y,1);if(f==0) puts("Yes");else puts("No");}}return 0; }

L2-017 人以群分 水題

社交網(wǎng)絡(luò)中我們給每個(gè)人定義了一個(gè)“活躍度”,現(xiàn)希望根據(jù)這個(gè)指標(biāo)把人群分為兩大類,即外向型(outgoing,即活躍度高的)和內(nèi)向型(introverted,即活躍度低的)。要求兩類人群的規(guī)模盡可能接近,而他們的總活躍度差距盡可能拉開。

輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(2≤N≤105)。隨后一行給出N個(gè)正整數(shù),分別是每個(gè)人的活躍度,其間以空格分隔。題目保證這些數(shù)字以及它們的和都不會超過231。

輸出格式:

按下列格式輸出:

Outgoing #: N1 Introverted #: N2 Diff = N3

其中N1是外向型人的個(gè)數(shù);N2是內(nèi)向型人的個(gè)數(shù);N3是兩群人總活躍度之差的絕對值。

輸入樣例1:

10 23 8 10 99 46 2333 46 1 666 555

輸出樣例1:

Outgoing #: 5 Introverted #: 5 Diff = 3611

輸入樣例2:

13 110 79 218 69 3721 100 29 135 2 6 13 5188 85

輸出樣例2:

Outgoing #: 7 Introverted #: 6 Diff = 9359

分析:

要先保證人數(shù)平均再保證差值盡量大,那么就排序后平均分成兩份的差值會最大,如果人數(shù)為奇數(shù),中間值分給外向的人群可以使得差值最大。

代碼:

#include<bits/stdc++.h> using namespace std;const int N=1e5+5; typedef long long ll;vector<int> v; int n,x,i,sum1,sum2;int main(){cin>>n;sum1=sum2=0;while(n--){cin>>x;v.push_back(x);}sort(v.begin(),v.end());for(i = 0 ; i < v.size()/2 ; i ++ ) sum1 += v[i];for(i = v.size()/2 ; i < v.size() ; i ++) sum2 += v[i];printf("Outgoing #: %d\n",v.size()-v.size()/2);printf("Introverted #: %d\n",v.size()/2);printf("Diff = %d\n",sum2-sum1);return 0; }

L2-018 多項(xiàng)式A除以B 模擬

這仍然是一道關(guān)于A/B的題,只不過A和B都換成了多項(xiàng)式。你需要計(jì)算兩個(gè)多項(xiàng)式相除的商Q和余R,其中R的階數(shù)必須小于B的階數(shù)。

輸入格式:

輸入分兩行,每行給出一個(gè)非零多項(xiàng)式,先給出A,再給出B。每行的格式如下:

N e[1] c[1] ... e[N] c[N]

其中N是該多項(xiàng)式非零項(xiàng)的個(gè)數(shù),e[i]是第i個(gè)非零項(xiàng)的指數(shù),c[i]是第i個(gè)非零項(xiàng)的系數(shù)。各項(xiàng)按照指數(shù)遞減的順序給出,保證所有指數(shù)是各不相同的非負(fù)整數(shù),所有系數(shù)是非零整數(shù),所有整數(shù)在整型范圍內(nèi)。

輸出格式:

分兩行先后輸出商和余,輸出格式與輸入格式相同,輸出的系數(shù)保留小數(shù)點(diǎn)后1位。同行數(shù)字間以1個(gè)空格分隔,行首尾不得有多余空格。注意:零多項(xiàng)式是一個(gè)特殊多項(xiàng)式,對應(yīng)輸出為0 0 0.0。但非零多項(xiàng)式不能輸出零系數(shù)(包括舍入后為0.0)的項(xiàng)。在樣例中,余多項(xiàng)式其實(shí)有常數(shù)項(xiàng)-1/27,但因其舍入后為0.0,故不輸出。

輸入樣例:

4 4 1 2 -3 1 -1 0 -1 3 2 3 1 -2 0 1

輸出樣例:

3 2 0.3 1 0.2 0 -1.0 1 1 -3.1

分析:

模擬手算多項(xiàng)式除法即可,注意細(xì)節(jié)

代碼:

#include<bits/stdc++.h> using namespace std;const int maxn=3e3+10; double c1[maxn],c2[maxn],c3[maxn];int nonNegativeNum(double c[],int st)//統(tǒng)計(jì)非負(fù)項(xiàng)個(gè)數(shù) {int cnt=0;for(int i=st;i>=0;--i)if(abs(c[i])+0.05>=0.1)cnt++;return cnt; } void printPoly(double c[],int st) {printf("%d",nonNegativeNum(c,st));if(nonNegativeNum(c,st)==0)printf(" 0 0.0");for(int i=st;i>=0;--i)if(abs(c[i])+0.05>=0.1)printf(" %d %.1lf",i,c[i]); } int main() {int max1=-1,max2=-1;int m;scanf("%d",&m);for(int i=0;i<m;++i){int t;scanf("%d",&t);max1=max(max1,t);scanf("%lf",&c1[t]);}int n;scanf("%d",&n);for(int i=0;i<n;++i){int t;scanf("%d",&t);max2=max(max2,t);scanf("%lf",&c2[t]);}int t1=max1,t2=max2;while(t1>=t2){double x=c1[t1]/c2[t2];//最高次冪的商的系數(shù) c3[t1-t2]=x;for(int i=t1,j=t2;j>=0;--j,--i)c1[i]-=c2[j]*x; while(abs(c1[t1])<1e-6)t1--;//如果該項(xiàng)是0,那么最高次冪降1; }printPoly(c3,max1-max2);puts("");printPoly(c1,t1);return 0; }

L2-019 悄悄關(guān)注 STL

新浪微博上有個(gè)“悄悄關(guān)注”,一個(gè)用戶悄悄關(guān)注的人,不出現(xiàn)在這個(gè)用戶的關(guān)注列表上,但系統(tǒng)會推送其悄悄關(guān)注的人發(fā)表的微博給該用戶?,F(xiàn)在我們來做一回網(wǎng)絡(luò)偵探,根據(jù)某人的關(guān)注列表和其對其他用戶的點(diǎn)贊情況,扒出有可能被其悄悄關(guān)注的人。

輸入格式:

輸入首先在第一行給出某用戶的關(guān)注列表,格式如下:

人數(shù)N 用戶1 用戶2 …… 用戶N

其中N是不超過5000的正整數(shù),每個(gè)用戶i(i=1, …, N)是被其關(guān)注的用戶的ID,是長度為4位的由數(shù)字和英文字母組成的字符串,各項(xiàng)間以空格分隔。

之后給出該用戶點(diǎn)贊的信息:首先給出一個(gè)不超過10000的正整數(shù)M,隨后M行,每行給出一個(gè)被其點(diǎn)贊的用戶ID和對該用戶的點(diǎn)贊次數(shù)(不超過1000),以空格分隔。注意:用戶ID是一個(gè)用戶的唯一身份標(biāo)識。題目保證在關(guān)注列表中沒有重復(fù)用戶,在點(diǎn)贊信息中也沒有重復(fù)用戶。

輸出格式:

我們認(rèn)為被該用戶點(diǎn)贊次數(shù)大于其點(diǎn)贊平均數(shù)、且不在其關(guān)注列表上的人,很可能是其悄悄關(guān)注的人。根據(jù)這個(gè)假設(shè),請你按用戶ID字母序的升序輸出可能是其悄悄關(guān)注的人,每行1個(gè)ID。如果其實(shí)并沒有這樣的人,則輸出“Bing Mei You”。

輸入樣例1:

10 GAO3 Magi Zha1 Sen1 Quan FaMK LSum Eins FatM LLao 8 Magi 50 Pota 30 LLao 3 Ammy 48 Dave 15 GAO3 31 Zoro 1 Cath 60

輸出樣例1:

Ammy Cath Pota

輸入樣例2:

11 GAO3 Magi Zha1 Sen1 Quan FaMK LSum Eins FatM LLao Pota 7 Magi 50 Pota 30 LLao 48 Ammy 3 Dave 15 GAO3 31 Zoro 29

輸出樣例2:

Bing Mei You

分析:

map記錄一下哪些名字出現(xiàn)過,再用一個(gè)map記錄點(diǎn)贊情況并求出平均值,遍歷記錄點(diǎn)贊記錄的map,將滿足條件的名字放入vector,排序輸出。

代碼:

#include <bits/stdc++.h> #define LL long long using namespace std; const int maxn = 1e5+10; const int inf = 0x3f3f3f3f; const double PI = acos(-1.0); typedef pair<int,int> PII; map<string,int> zan; map<string,int> guan; int main(int argc, char const *argv[]) {int n;cin >> n;string s;for(int i = 0; i < n; i++) {cin >> s;guan[s] = 1;}int m, x;cin >> m;double sum = 0;for(int i = 0 ; i < m; i++){cin >> s >> x;sum += x;zan[s] = x;}sum = sum*1.0/m;vector<string> ans;for(auto it : zan) {if(guan[it.first] == 0 && sum < it.second) ans.push_back(it.first);}if(ans.size() == 0) puts("Bing Mei You");else {sort(ans.begin(), ans.end());for (int i = 0; i < ans.size(); i++) cout << ans[i] << endl;}return 0; }

L2-020 功夫傳人 dfs

一門武功能否傳承久遠(yuǎn)并被發(fā)揚(yáng)光大,是要看緣分的。一般來說,師傅傳授給徒弟的武功總要打個(gè)折扣,于是越往后傳,弟子們的功夫就越弱…… 直到某一支的某一代突然出現(xiàn)一個(gè)天分特別高的弟子(或者是吃到了靈丹、挖到了特別的秘笈),會將功夫的威力一下子放大N倍 —— 我們稱這種弟子為“得道者”。

這里我們來考察某一位祖師爺門下的徒子徒孫家譜:假設(shè)家譜中的每個(gè)人只有1位師傅(除了祖師爺沒有師傅);每位師傅可以帶很多徒弟;并且假設(shè)輩分嚴(yán)格有序,即祖師爺這門武功的每個(gè)第i代傳人只能在第i-1代傳人中拜1個(gè)師傅。我們假設(shè)已知祖師爺?shù)墓αχ禐閆,每向下傳承一代,就會減弱r%,除非某一代弟子得道?,F(xiàn)給出師門譜系關(guān)系,要求你算出所有得道者的功力總值。

輸入格式:

輸入在第一行給出3個(gè)正整數(shù),分別是:N(≤105)——整個(gè)師門的總?cè)藬?shù)(于是每個(gè)人從0到N?1編號,祖師爺?shù)木幪枮?);Z——祖師爺?shù)墓αχ?#xff08;不一定是整數(shù),但起碼是正數(shù));r ——每傳一代功夫所打的折扣百分比值(不超過100的正數(shù))。接下來有N行,第i行(i=0,?,N?1)描述編號為i的人所傳的徒弟,格式為:

K**i ID[1] ID[2] ? ID[K**i]

其中K**i是徒弟的個(gè)數(shù),后面跟的是各位徒弟的編號,數(shù)字間以空格間隔。K**i為零表示這是一位得道者,這時(shí)后面跟的一個(gè)數(shù)字表示其武功被放大的倍數(shù)。

輸出格式:

在一行中輸出所有得道者的功力總值,只保留其整數(shù)部分。題目保證輸入和正確的輸出都不超過1010。

輸入樣例:

10 18.0 1.00 3 2 3 5 1 9 1 4 1 7 0 7 2 6 1 1 8 0 9 0 4 0 3

輸出樣例:

404

分析:

由于每個(gè)徒弟嚴(yán)格只會跟一個(gè)高一輩的師傅,直接保存每個(gè)人的徒弟,然后dfs一遍就行,標(biāo)記一下超級徒弟dfs的時(shí)候判斷一下就行,超級徒弟就是葉子節(jié)點(diǎn)。

代碼:

#include<bits/stdc++.h> using namespace std; #define PII pair<int,int>const int INF = 0x3f3f3f3f; const int N = 1e5+10;int n; int vis[N]; double z,r,sum; vector<int> v[N];void dfs(int x,double power){if(vis[x]){sum+=power*v[x][0];return ;}for(int i=0;i<v[x].size();i++)dfs(v[x][i],power*r); }int main(){cin>>n>>z>>r;r=(100.0-r)/100.0;for(int i=0;i<n;i++){int k,x; cin>>k;if(k==0) {cin>>x;vis[i]=1;v[i].push_back(x);}while(k--){cin>>x;v[i].push_back(x);}}dfs(0,z);cout<<(int)sum<<endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的团体程序设计天梯赛-练习集 (L2-001 - L2-020)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

91观看视频 | 国产午夜三级一区二区三 | 黄a网| 日韩三级免费观看 | 欧美做受高潮1 | 国产精选视频 | 国产高清视频免费在线观看 | 中文字幕一区二区在线观看 | 久久99精品国产99久久 | 色视频网址 | 国产免费人成xvideos视频 | 久久99中文字幕 | 91在线免费播放视频 | 国产视频二 | 国产污视频在线观看 | 亚洲精品2区 | 日日夜夜综合网 | 在线观看精品黄av片免费 | www天天操 | 九九涩涩av台湾日本热热 | 91免费看片黄 | 91麻豆网 | 黄色一级影院 | 黄色av电影网 | 日日综合| 国产黄色免费观看 | 精品国产aⅴ一区二区三区 在线直播av | 午夜久草 | 久久久久欠精品国产毛片国产毛生 | 97人人超| 人人爽人人av | 国产探花视频在线播放 | 超碰电影在线观看 | 正在播放国产一区二区 | 十八岁免进欧美 | 亚洲日韩精品欧美一区二区 | 亚洲天堂毛片 | 麻豆影视在线播放 | 日韩丝袜 | 婷婷综合网 | 亚洲禁18久人片 | 免费一级特黄毛大片 | 97视频一区| 91视频免费观看 | 国产在线 一区二区三区 | 免费看国产精品 | 中文字幕一区二区三区乱码不卡 | 欧美激精品 | 91精品一区二区三区蜜桃 | 激情久久网 | 亚洲成人黄色 | 久久成人免费电影 | 一区二区成人国产精品 | 精品久久久久亚洲 | 亚洲综合成人婷婷小说 | 91精品一区二区三区蜜桃 | 日日草天天草 | av电影中文字幕在线观看 | 最新av在线网址 | 国产精品久久久久久久久久妇女 | 天天操月月操 | aa级黄色大片 | 韩国av电影在线观看 | 国产一区二区在线免费播放 | 国产成人精品女人久久久 | 高清有码中文字幕 | 99久久日韩精品视频免费在线观看 | 一级片免费在线 | 久草视频在线新免费 | 欧美成人黄色 | 五月天色婷婷丁香 | 黄色片视频免费 | 91精品国产乱码 | 国产精品美乳一区二区免费 | 婷婷亚洲五月 | av天天干 | 久艹视频在线观看 | 日韩精品欧美专区 | 91av影视| 超碰久热 | 一区二区在线电影 | 国偷自产视频一区二区久 | 啪啪精品| 网址你懂的在线观看 | 热re99久久精品国产66热 | 国产美女精品 | 福利视频导航网址 | 激情五月网站 | 99精品视频网站 | 婷婷六月中文字幕 | 国内成人综合 | 免费观看版 | 999男人的天堂 | 一区二区精品 | 日韩在线视频一区二区三区 | 精品国产乱子伦一区二区 | 久久久国产电影 | 久青草国产在线 | 911精品美国片911久久久 | 91久久久久久国产精品 | 九九久久免费视频 | 中文字幕在线字幕中文 | 亚洲九九九在线观看 | 97超碰人人澡人人爱 | 怡红院久久 | 亚洲精品在线观看的 | 最近中文字幕视频网 | 99在线热播精品免费99热 | 日韩黄色免费看 | 成人在线网站观看 | 色婷婷综合成人av | 免费看黄色大全 | 日韩网站在线看片你懂的 | 国产精品ⅴa有声小说 | 热久久精品在线 | 波多野结衣亚洲一区二区 | 久久99久久精品国产 | 国产精品久久久久久久久免费 | 黄色在线网站噜噜噜 | 日韩精品中文字幕在线不卡尤物 | 91精品国产99久久久久 | 午夜黄色影院 | 伊人伊成久久人综合网站 | 97高清视频 | 亚洲欧洲精品一区二区 | 国产毛片在线 | 正在播放五月婷婷狠狠干 | 亚洲天天做| 日韩免费在线观看视频 | 久久免费视频8 | 日韩一区视频在线 | 久久成人精品视频 | 久久特级毛片 | 亚洲 欧美日韩 国产 中文 | 在线观看日本高清mv视频 | 99久久婷婷国产综合精品 | 九九热在线视频 | 国产资源在线观看 | 久久字幕精品一区 | se视频网址 | 91av色| 欧美天堂久久 | 99久久精品国产亚洲 | 五月开心综合 | 99热这里只有精品免费 | 久久精品91久久久久久再现 | 久久www免费视频 | 日韩黄色在线电影 | 日韩免费网址 | 九九久久久 | 国产成人一二三 | 在线视频国产区 | 成人在线观看资源 | 亚州日韩中文字幕 | 国产午夜小视频 | 亚洲精品中文在线 | 色成人亚洲网 | 五月婷婷激情综合网 | 亚洲视频在线免费观看 | 亚洲成av人片在线观看无 | 欧美一级大片在线观看 | 香蕉视频在线免费 | 91成人亚洲 | 欧美日韩高清不卡 | 视频在线观看99 | 亚洲乱码在线 | 91亚洲国产 | 欧美激情视频一二区 | 欧洲精品一区二区 | 亚洲精品在线观看中文字幕 | 久久a免费视频 | 久久99网站 | 中日韩在线 | 91视视频在线直接观看在线看网页在线看 | 国产精品av免费 | 欧美a影视 | 天天干天天看 | 天天综合成人 | 成年人免费电影 | 91资源在线播放 | 99性视频 | 天堂av在线7 | 亚洲国产精品久久久 | 91精品视频一区二区三区 | 欧美在线日韩在线 | 狠狠干狠狠色 | 日韩精品网址 | 日本特黄一级片 | 久久精品网站视频 | 国产精品 999| 1区2区3区在线观看 三级动图 | 99精品久久久久 | 精品毛片一区二区免费看 | 亚洲欧美经典 | 日本公妇在线观看高清 | 999久久久欧美日韩黑人 | 麻豆免费在线播放 | av免费在线免费观看 | 国产日韩一区在线 | 国产精品高清在线 | 可以免费观看的av片 | 美女国产 | 日本中文字幕在线看 | www五月天婷婷 | 国产特级毛片 | 青青草久草在线 | 国产黄色片免费观看 | 在线观看日韩av | 亚洲欧洲一区二区在线观看 | 久久精品3 | 精品国产乱码久久久久久浪潮 | 亚洲精品玖玖玖av在线看 | 深夜免费福利在线 | 91成品人影院 | 精品久久久久久久久亚洲 | 草莓视频在线观看免费观看 | 久久精品视频日本 | 98精品国产自产在线观看 | 97在线视频观看 | 在线播放精品一区二区三区 | 国产精品福利久久久 | 国外成人在线视频网站 | 香蕉在线视频观看 | 国产理伦在线 | 综合网伊人 | 国产精品视频久久久 | 不卡的av电影 | 中文字幕乱码一区二区 | 最新国产在线 | 国产免费不卡 | 免费观看av | 久久深爱网| 999久久久欧美日韩黑人 | 狠狠色网 | 福利二区视频 | 国产精品无 | 国产丝袜制服在线 | 中文字幕av电影下载 | 久久精品久久久久久久 | 久久久久久久看片 | 456成人精品影院 | 免费精品在线视频 | 日韩免费在线视频 | 91在线免费视频观看 | 色婷婷视频在线 | 国产成人精品av久久 | 91高清在线看 | 日韩久久精品 | 久久视频在线观看中文字幕 | 国产成人三级三级三级97 | 久二影院| 欧美日韩国产一区二区三区 | 精品日韩在线一区 | 欧美热久久 | av成人黄色 | 国产一级淫片在线观看 | 在线视频欧美精品 | 国产尤物视频在线 | 在线观看视频色 | 人人要人人澡人人爽人人dvd | 狠狠精品 | 日韩草比 | 在线看一区二区 | 欧美日韩3p | 国产高清在线看 | 91视频在线免费观看 | 日韩成人一级大片 | 操操综合网 | 国产精品自拍av | 黄色亚洲| 国产九九精品视频 | 午夜久久久久久久 | 国产午夜在线 | 亚洲精品a区 | 成人小视频在线观看免费 | 久久免费看视频 | a级一a一级在线观看 | 国产亚洲精品久久久久久电影 | 婷婷黄色片 | 欧美少妇xx | 欧美日韩三区二区 | 精品福利视频在线观看 | 免费亚洲视频在线观看 | 久久这里只有精品视频首页 | 日韩黄色一级电影 | 狠狠色伊人亚洲综合网站色 | 欧美性久久久 | 久久久久久久网站 | 成人免费一区二区三区在线观看 | 久久国精品 | 伊人狠狠干 | 国产资源在线播放 | 色综合天天天天做夜夜夜夜做 | 色综合天天狠天天透天天伊人 | 国产色视频| 亚洲精品ww| 久草网免费 | 99久久精品国 | 国产成人精品福利 | 99精品欧美一区二区三区黑人哦 | 国产午夜精品久久久久久久久久 | 中文字幕在线观看日本 | 99免费在线观看 | 亚洲成人一区 | 日本成人中文字幕在线观看 | 91av99| 国产青草视频在线观看 | 香蕉97视频观看在线观看 | 精品久久1 | 日韩欧美综合视频 | 亚洲精品婷婷 | 国产精品久久久久久久久久白浆 | 国产精品欧美日韩在线观看 | 爱色av.com | 91精品国产自产老师啪 | 超碰精品在线观看 | 久久人人爽人人爽 | 97在线视频免费观看 | 99色在线观看 | 成人黄色毛片 | 最新av免费在线观看 | 有码一区二区三区 | 国产香蕉av | 亚洲国产字幕 | 亚洲综合小说 | 狠狠躁夜夜躁人人爽视频 | 欧美成人区| 亚洲国产精品va在线看黑人动漫 | 欧美一级视频免费 | 日本精品视频免费观看 | 日韩欧美精品一区二区三区经典 | 日韩免费一二三区 | 久久毛片视频 | 一区二区三区四区精品视频 | 91污污视频在线观看 | 在线有码中文 | 天天干,天天射,天天操,天天摸 | 午夜精品福利影院 | 亚洲日韩中文字幕 | 中文字幕在线观看第二页 | 黄色小说免费在线观看 | 三级a视频 | 九九视频在线观看视频6 | 国产精品视频在线观看 | 91观看视频 | 国产剧在线观看片 | 日日夜夜av | 欧美另类调教 | 精品五月天 | 国产精品久久久久永久免费看 | 婷婷六月激情 | 久久久久久久久久久免费视频 | 亚洲精品午夜aaa久久久 | 97自拍超碰 | 激情五月伊人 | 国产中文字幕91 | 欧美成人h版电影 | 久久久免费视频播放 | 在线看国产精品 | 久久久久伊人 | 粉嫩av一区二区三区四区在线观看 | 国产69精品久久久久99 | 狠狠色免费 | 国产精品一区二区久久 | 国产aaa大片 | 91av在线电影 | 午夜精品电影 | 欧美一二区在线 | 亚洲国产精品成人女人久久 | 亚洲精品高清视频 | 天天操天天操天天操 | 欧美在线一级片 | 久久手机精品视频 | 在线国产一区二区三区 | 精品国自产在线观看 | 黄色a级片在线观看 | 欧美精品乱码久久久久 | 国产aa免费视频 | 久久久精品网站 | 偷拍精偷拍精品欧洲亚洲网站 | 在线韩国电影免费观影完整版 | 91视频免费看片 | 久久高清视频免费 | 久久婷婷精品视频 | 在线涩涩| 88av网站 | 久久久久99精品成人片三人毛片 | 色视频网站在线 | 成人资源站 | 欧美日产在线观看 | 国产精品毛片久久久 | 99热这里只有精品免费 | 久9在线 | 丝袜美女视频网站 | 日韩a级免费视频 | 国产玖玖在线 | 欧美激情第十页 | 在线有码中文 | 日日夜夜精品 | 国产一区二区三区在线免费观看 | 亚洲欧洲精品在线 | 亚洲免费黄色 | 国产 在线 高清 精品 | 日韩精品一区二区三区三炮视频 | 丁香婷婷基地 | 91大神一区二区三区 | 91精品久久久久久久久久久久久 | 日韩高清不卡在线 | 日本中文字幕免费观看 | 色综合天天综合 | 日韩综合一区二区 | 色丁香久久 | 91尤物国产尤物福利在线播放 | 欧美日韩中文国产一区发布 | 日本黄色免费观看 | 人人爽久久久噜噜噜电影 | 激情五月婷婷综合网 | 亚洲一区二区三区在线看 | freejavvideo日本免费 | 国产精品免费成人 | 99视频一区二区 | 久久黄色精品视频 | 免费无遮挡动漫网站 | 最近中文字幕在线中文高清版 | 美女视频a美女大全免费下载蜜臀 | 精品在线观看一区二区三区 | 中文字幕日韩国产 | 91福利影院在线观看 | 亚洲国产精品成人精品 | 国产精品k频道 | 国产成人一区二区三区在线观看 | 成人久久久久久久久久 | 国产麻豆精品久久一二三 | 美女久久久久久久 | 日韩av影视在线观看 | 日韩在线观看第一页 | 日韩aa视频 | 天天综合久久 | 免费无遮挡动漫网站 | 色噜噜在线观看 | 男女免费视频观看 | 成人亚洲精品久久久久 | 国产精品入口久久 | 国产精品一区二区麻豆 | 国产又粗又猛又色 | 久久视频免费看 | 天天综合成人网 | 91精品久久久久久久91蜜桃 | 高清久久久 | 天天做天天爱天天综合网 | 97网| 国产成人精品久久久久蜜臀 | 欧美日韩午夜在线 | 91成人亚洲 | 麻豆91在线看 | 国产黄色资源 | 国产做爰视频 | 日韩免费中文 | 亚洲精品自拍视频在线观看 | 狠狠躁日日躁狂躁夜夜躁 | 国产精品原创av片国产免费 | 中文字幕一区二区三 | 亚洲五月婷婷 | 国产一区二区三区在线 | 黄色com | 天天操综 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 中文字幕在线观看免费 | 99激情网 | 久久精品99北条麻妃 | 午夜色大片在线观看 | 香蕉视频在线网站 | 日韩激情视频在线观看 | 欧美嫩草影院 | 不卡精品 | 六月色 | 国产精品日韩在线播放 | 久久免费视频播放 | 在线观看一区 | 中文字幕在线观看免费高清电影 | 国产精品久久久久久一区二区 | 久草在线视频免赞 | 黄色三级免费网址 | 婷婷五月色综合 | 在线综合 亚洲 欧美在线视频 | 黄色的网站免费看 | 波多野结衣一区三区 | 久久久久女人精品毛片 | 亚洲最大av | 天天综合网国产 | 国精产品一二三线999 | 久草视频在线资源站 | 成人国产一区二区 | 亚洲精品乱码久久久久久高潮 | 国产福利不卡视频 | 国产美女精品在线 | 国产原创在线 | 精品久久一区 | 玖玖国产精品视频 | 国产色久 | 99夜色| 在线观看精品一区 | 欧美成人按摩 | 高清视频一区二区三区 | 久久精品艹 | 久久免费av| 天天操天天操天天操 | 九九99| 日韩在线视频网站 | 综合久久一本 | 91精品国产99久久久久久红楼 | 香蕉久久国产 | 波多野结衣动态图 | 开心丁香婷婷深爱五月 | 91视频这里只有精品 | 麻豆免费视频观看 | 99精品久久久 | 日韩在线视频网站 | 日韩高清一区二区 | 日本在线观看一区 | 中文字幕亚洲高清 | 久久精品2 | 国产精品va在线播放 | 色婷久久 | 四虎在线免费视频 | 欧美性色xo影院 | 草久久久久久久 | 国产精品不卡在线 | 午夜精品久久久久久久久久久 | 精品成人久久 | 在线日本看片免费人成视久网 | 日韩欧美视频在线播放 | 人人干人人爽 | 成人高清在线观看 | 日韩精品一区二区三区中文字幕 | 亚洲国产精品第一区二区 | 免费在线观看国产黄 | 亚洲天堂精品 | 精品国产一区二区三区日日嗨 | 久久精品99国产精品亚洲最刺激 | 91在线麻豆 | 国产精品一区二区电影 | 久草在 | 天天翘av | 日日夜夜免费精品 | 亚洲欧洲xxxx | 欧美日韩一级久久久久久免费看 | 日本精品一区二区在线观看 | 免费成人短视频 | 一区二区三区免费在线观看视频 | 91麻豆文化传媒在线观看 | 手机看片99| 免费av观看网站 | 精品久久久免费视频 | 九九精品视频在线看 | 成年人看片 | 99中文在线| 97福利在线 | 成人a免费看 | av综合 日韩| 在线色网站 | 久久免费视频这里只有精品 | 天天干,狠狠干 | 国产黄色片免费看 | 婷婷综合激情 | 91在线看视频免费 | 国产精品久久久久久久久久久久午夜 | 久草精品资源 | 最近中文字幕久久 | 中文字幕日韩av | aaa毛片视频 | 亚洲视频电影在线 | 国产美女黄网站免费 | 在线播放你懂 | 国产手机av在线 | 91在线精品一区二区 | 成人精品久久久 | 91精彩在线视频 | 日本h在线播放 | 亚洲一级在线观看 | 久久免费a | www.av在线.com| 国产精品一区二区三区99 | 97视频在线免费播放 | 日日夜夜91 | 成人在线视频免费观看 | 国产一区二区视频在线 | 成人av电影在线播放 | 亚洲精品久久久蜜桃直播 | 久久黄色免费视频 | 18网站在线观看 | 婷婷www | 午夜的福利 | 国产在线观看免费 | 国产97碰免费视频 | 色欧美成人精品a∨在线观看 | 97超级碰 | 亚洲黄色三级 | 欧美激情精品久久久久久免费 | 激情欧美一区二区免费视频 | 免费色网 | 久久久精品网站 | 国产精品h在线观看 | 久久深夜福利免费观看 | 日韩欧美在线观看一区二区三区 | 人人爽久久涩噜噜噜网站 | 日韩婷婷| 丁香视频| 亚洲精品裸体 | 韩日精品在线 | 麻豆视频一区 | 在线观看av的网站 | 久久综合给合久久狠狠色 | 亚洲区另类春色综合小说校园片 | 日韩中文在线字幕 | 麻豆传媒视频在线 | www五月 | 亚洲精品在线一区二区三区 | 国产三级国产精品国产专区50 | 精品一区二区在线免费观看 | 久久综合久久综合九色 | 亚洲高清国产视频 | 99热九九这里只有精品10 | 综合久久网 | aⅴ精品av导航 | 韩国av永久免费 | 国产字幕av| 婷婷精品国产一区二区三区日韩 | 97色视频在线 | 综合网久久 | 久久精品影片 | 国产黄在线观看 | 中国精品一区二区 | 国产精品自产拍在线观看中文 | 狠狠的日日 | 黄色一级免费网站 | 久久黄色免费观看 | 久久人人爽视频 | 九九99视频 | 国产 在线 高清 精品 | 日本久久影视 | 91在线观看黄 | 一区二区三区在线免费观看 | 尤物一区二区三区 | 一区二区三区在线视频观看58 | 999国产| 国内久久久久 | 成人免费视频在线观看 | 精品国自产在线观看 | 在线成人免费 | 色五婷婷| 日日夜夜狠狠干 | 麻豆传媒视频在线 | 久久综合中文色婷婷 | 中文字幕在线观看av | 国精产品永久999 | 色a综合| 欧美高清成人 | 亚洲精品视频在线播放 | 日日天天 | 99热这里只有精品久久 | 天天艹日日干 | 精品国模一区二区三区 | 日本一区二区三区视频在线播放 | 婷婷视频在线观看 | 国产手机在线视频 | 91久久久国产精品 | 中文字幕精品一区二区精品 | 国产一卡二卡在线 | 久久精品一区二区 | 成人免费xyz网站 | 国产成人精品一二三区 | 日韩高清免费无专码区 | 国产精品99久久久久 | 六月婷婷久香在线视频 | 最近更新好看的中文字幕 | 精品久久影院 | 天天色天天干天天色 | 亚洲精品中文字幕在线观看 | 日韩一区二区免费在线观看 | av网站免费线看精品 | 国内精品亚洲 | 国产99久久久精品 | 国产91免费看 | 在线观看免费av片 | 五月婷婷在线播放 | 999国内精品永久免费视频 | 黄色aaa毛片 | 久久久www成人免费毛片麻豆 | www免费网站在线观看 | 欧美日韩国内在线 | 韩国av一区二区 | 亚洲久久视频 | 97视频免费在线观看 | 美女网站视频久久 | 亚洲精品美女视频 | 天天综合导航 | 99热在 | 亚洲精品在线视频网站 | 高清精品久久 | 最新国产一区二区三区 | 麻豆视频免费入口 | 天天射网站 | 欧美精品九九99久久 | 成年人电影免费在线观看 | 在线v| 国产精品久久久久久久久久久杏吧 | 97视频在线观看网址 | 日韩欧美在线视频一区二区三区 | 久久av免费观看 | 日日干av | 中文字幕在线观看完整 | 成人av电影免费在线播放 | 欧美精品久久久久久久久久久 | 在线国产福利 | 免费黄色激情视频 | 国产精品va最新国产精品视频 | 欧美精品久久久久 | 蜜桃视频在线视频 | 一区二区三区在线观看免费视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产精品区一区 | 欧美精品一级视频 | 久久深夜福利免费观看 | 99久高清在线观看视频99精品热在线观看视频 | 91在线看黄 | av在线免费观看黄 | 中文字幕一区二区三区四区在线视频 | 国产精品成人一区二区三区 | www.五月天婷婷 | 久久久国产日韩 | 啪啪免费视频网站 | 久久99久久99精品免观看软件 | 色在线最新 | 国产黄色免费观看 | 国产一级二级在线观看 | 18女毛片 | 欧美日韩精品免费观看视频 | 香蕉成人在线视频 | 中文字幕在线播放第一页 | 91在线看 | 中文字幕 国产 一区 | 欧美精品二 | 黄网站www | 99婷婷狠狠成为人免费视频 | 国外成人在线视频网站 | 一区二区国产精品 | 日韩精品一区二区三区在线播放 | 亚洲精品视频国产 | 毛片a级片| 欧美一级电影免费观看 | 精品国产免费一区二区三区五区 | 国产精品av在线 | 亚洲视频中文 | 亚洲精品国产精品国产 | 99这里只有精品视频 | 人人艹人人 | 在线只有精品 | 亚洲aⅴ乱码精品成人区 | 嫩草av在线 | 免费大片黄在线 | 视频国产精品 | 久九视频 | 91在线播放视频 | 最新日韩在线观看视频 | 在线免费高清一区二区三区 | 在线观看精品视频 | 久久精品毛片 | 久久字幕精品一区 | 激情视频综合网 | 午夜久久久久久久 | 国产中文字幕在线观看 | 狠狠色丁香婷婷综合基地 | 色综合天天色综合 | 91大片网站 | 美女精品| 黄色录像av | 午夜.dj高清免费观看视频 | 精品99在线视频 | 日韩免费一区 | 91精品国产99久久久久 | 激情视频二区 | 最近免费中文视频 | 日韩精品你懂的 | 在线中文字幕视频 | 美女网站视频免费都是黄 | 亚洲成人精品在线 | 天天av在线播放 | www.夜夜干.com | 久久综合精品一区 | 特级片免费看 | 日日精品| 中文字幕韩在线第一页 | 精品久久久久久久久中文字幕 | 黄色美女免费网站 | 亚洲精品视频免费在线观看 | 国产精品99免视看9 国产精品毛片一区视频 | 九九热在线观看 | 波多野结衣电影一区二区三区 | 麻豆影视在线播放 | 亚洲伊人网在线观看 | 天堂网一区二区三区 | 欧美一级片在线播放 | 国产91精品一区二区绿帽 | 色六月婷婷 | 日韩av不卡在线观看 | 亚洲综合成人专区片 | 久久精品国产一区二区三区 | 色哟哟国产精品 | 国产婷婷视频在线 | 免费看黄色小说的网站 | 日韩黄色大片在线观看 | 国产成人在线精品 | 丁香色婷 | 日韩91精品 | 亚洲国产欧美一区二区三区丁香婷 | 97看片网 | 天天久久综合 | 久久社区视频 | 97麻豆视频 | 麻豆视频一区二区 | 色.www | 99产精品成人啪免费网站 | 国产精品区一区 | 国产视频在线观看免费 | 成人在线免费观看网站 | 国产一区在线观看视频 | va视频在线 | 天天操操操操操操 | 国产精品99久久99久久久二8 | 亚洲综合丁香 | 亚洲 欧洲av | av片一区二区 | 日本一区二区高清不卡 | 久久精品99国产精品 | 久久99精品波多结衣一区 | 美女黄频 | 国外成人在线视频网站 | 亚洲年轻女教师毛茸茸 | 婷婷激情综合五月天 | 免费在线观看污网站 | 国产成人一区二区三区 | 亚洲精品一区二区在线观看 | 香蕉视频在线免费 | 久久久久久久免费看 | 亚洲精品国产综合久久 | 人人玩人人添人人澡超碰 | 一区二区视| 福利久久 | 天天操·夜夜操 | 久久久福利 | 亚洲免费av在线播放 | 天天综合网天天综合色 | 国产一区免费在线 | 国产色在线观看 | 亚洲手机av | 亚洲人人精品 | 黄色大片视频网站 | 免费高清av在线看 | 国产精品一区二区免费 | 国产精品不卡在线播放 | 久久久www成人免费精品 | 欧美日韩一区二区三区免费视频 | 午夜精品av | 日韩久久午夜一级啪啪 | 天天综合天天做天天综合 | 国内精品久久久久久久久久清纯 | 五月婷婷开心中文字幕 | 夜夜操天天干 | 久久a免费视频 | 国产精品女人网站 | 91porny九色91啦中文 | 综合激情网...| 国产视频不卡 | 精品久久久久久亚洲综合网站 | 久久久91精品国产一区二区精品 | av在线h| 成人网看片 | 日韩三级视频在线观看 | 成人毛片100免费观看 | 91久久国产综合精品女同国语 | 色视频在线看 | 一区二区在线影院 | 亚洲另类视频在线观看 | 四虎影视久久久 | 在线看片日韩 | 色播99| 激情图片区 | 亚洲精品456在线播放乱码 | 久久国产一区二区三区 | 人人爽网站 | 在线观看黄色的网站 | 久久1区| 成人小视频免费在线观看 | 欧美成年性 | 日韩精品短视频 | 美女视频黄,久久 | 成年美女黄网站色大片免费看 | 亚洲91在线 | 久久久久久不卡 | 色丁香婷婷 | 久久午夜色播影院免费高清 | 日本精品视频在线 | 国产精品手机播放 | 亚洲精品女人久久久 | 中文在线8资源库 | 国产特级毛片aaaaaa毛片 | 久久国产精品久久国产精品 | 又黄又爽又刺激视频 | 五月天天色| 97碰视频| 欧美一级黄大片 | 伊人影院得得 | 91.精品高清在线观看 | 欧美日韩国产三级 | 久久久精品国产一区二区电影四季 | 人人干人人搞 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产精品成人aaaaa网站 | 四虎国产免费 | 久久国产精品色av免费看 | 狠狠五月婷婷 | 欧美高清视频不卡网 | 免费看网站在线 | 在线观看黄色免费视频 | 精品久久一 | 日本动漫做毛片一区二区 | 久久久久亚洲天堂 | 天天射狠狠干 | 精品免费国产一区二区三区四区 | 中文字幕成人网 | 91九色porny在线 | 一级a毛片高清视频 | 公与妇乱理三级xxx 在线观看视频在线观看 | 国产视频每日更新 | 91一区啪爱嗯打偷拍欧美 | 综合久久久久久久 | 激情综合中文娱乐网 | 久久爱影视i | 亚洲视频h | 成人9ⅰ免费影视网站 | 夜夜操网| 麻豆国产精品永久免费视频 | 欧美精品在线观看一区 | 免费观看丰满少妇做爰 | 欧美精品久久久久久久亚洲调教 | 激情片av | 91av手机在线观看 | 亚洲国产成人久久 | 国产视频资源在线观看 | 久久99精品国产麻豆宅宅 | 亚洲综合在线观看视频 | 在线成人观看 | 中文字幕在线免费观看 | 狠狠色狠狠色综合日日小说 | 91视频91自拍 | 免费的国产精品 | 中文字幕久久精品亚洲乱码 | 97超碰在线播放 | 97在线免费视频观看 | 欧美一区二区在线免费看 | 日韩网站免费观看 | 国产一区免费 | av在线永久免费观看 | 91在线观看黄 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 婷婷综合久久 | 97精品超碰一区二区三区 | 国产日韩高清在线 | 亚洲另类视频在线观看 | 国产精品成人免费 | 亚洲精品一区中文字幕乱码 | 中文字幕在线看人 | 精品久久久久免费极品大片 | 天天色天天操综合 | 久久精品99国产精品酒店日本 | 综合色站 | 国产黄免费看 | 国产免费嫩草影院 | 亚洲欧美在线综合 | 在线精品视频免费播放 | 亚洲激情一区二区三区 | 亚洲精品在线观看av | 色噜噜狠狠狠狠色综合久不 | 黄色免费网站下载 | 国语精品视频 | 在线观看精品一区 | a视频免费看 | 69精品在线| 国产日韩欧美在线一区 | 超碰人人草 | 国内丰满少妇猛烈精品播 | 日韩极品视频在线观看 | 国产精品久久久网站 | 成在线播放 | 久久伊人精品天天 | 91看片在线播放 | 成人av影院在线观看 |