首页 > 其他 > 详细

日常训练17-10-15

时间:2017-10-15 23:59:23      阅读:420      评论:0      收藏:0      [点我收藏+]

题目链接:here

 

Text Editor

Gym - 101504F

emmm...又是链表都写不溜=_=||

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn  = 1e6+10;
 4 int L[maxn], R[maxn];
 5 char s[maxn];
 6 char ans[maxn];
 7 
 8 int main(){
 9     //freopen("in.txt", "r", stdin);
10     memset(L, -1, sizeof(L));
11     memset(R, -1, sizeof(R));
12     scanf("%s", s);
13     int now = 0;
14     int cnt = 0;
15     int n = strlen(s);
16     for(int i = 0; i < n; i++){
17         if(s[i] == L){
18             if(L[now] != -1) now = L[now];
19         }else if(s[i] == R){
20             if(R[now] != -1) now = R[now];
21         }else {
22             cnt++;
23             L[cnt] = now;
24             R[cnt] = R[now];
25             if(R[now] != -1) L[R[now]] = cnt;
26             R[now] = cnt;
27             now = cnt;
28             ans[now] = s[i];
29         }
30     }
31     for(int i = R[0]; i!=-1; i = R[i]){
32         printf("%c", ans[i]);
33     }
34     puts("");
35 }
View Code

 

Friends of Friends

Gym - 101504G
题意:问x的朋友的朋友是谁.
技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 55;
 4 int g[maxn][maxn];
 5 int vis[maxn];
 6 int ans[maxn];
 7 int cnt = 0;
 8 int main(){
 9     int n, x;
10     scanf("%d %d", &n, &x);
11     for(int i = 1; i <= n; i++){
12         int m;
13         scanf("%d", &m);
14         for(int j = 0; j < m; j++){
15             int u;
16             scanf("%d", &u);
17             g[i][u] = 1;
18         }
19     }
20     for(int i = 1; i <= n; i++){
21         if(g[x][i]) {
22             vis[i] = 1;
23         }
24     }
25     for(int i = 1; i <= n; i++){
26         if(vis[i]==1){
27             for(int j = 1; j <= n; j++){
28                 if(g[i][j]&& !vis[j] && j!= x) {
29                     ans[cnt++] = j;
30                     vis[j] = 2;
31                 }
32             }
33         }
34     }
35     sort(ans, ans+cnt);
36     printf("%d\n", cnt);
37     for(int i = 0; i < cnt; i++){
38         printf("%d%c", ans[i], i==cnt-1? \n: );
39     }
40 }
View Code

 

日常训练17-10-15

原文:http://www.cnblogs.com/yijiull/p/7674792.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!