• The 2014 ACM-ICPC Asia Mudanjiang Regional First Round


    The Himalayas http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5341

    签到

     1 #include<cstdio>
     2 int main(){
     3     int t,n,a[64];
     4     while(~scanf("%d",&t)){
     5         while(t--){
     6             scanf("%d",&n);
     7             for(int i=1;i<=n;i++){
     8                 scanf("%d",&a[i]);
     9             }
    10             int ans=0;
    11             for(int i=2;i<n;i++){
    12                 if(a[i]>a[i-1]&&a[i]>a[i+1]){
    13                     ans++;
    14                 }
    15             }
    16             printf("%d
    ",ans);
    17         }
    18     }
    19     return 0;
    20 }
    View Code

     Pretty Poem http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5350

    string

     1 #include<cstdio>
     2 #include<cctype>
     3 #include<iostream>
     4 using namespace std;
     5 char sin[64],sout[64];
     6 string a1,a2,a3,b1,b2,b3,c;
     7 int main(){
     8     int t;
     9     scanf("%d",&t);
    10     while(t--){
    11         scanf("%s",sin);
    12         int ls=0;
    13         for(int i=0;sin[i];i++){
    14             if(isalpha(sin[i])){
    15                 sout[ls++]=sin[i];
    16             }
    17         }
    18         bool flag=false;
    19         for(int la=1;la<=ls;la++){
    20             for(int lb=1;lb<=ls;lb++){
    21                 if(la*3+lb*2==ls){///"ABABA"
    22                     a1=a2=a3=b1=b2="";
    23                     int s=0;
    24                     for(int i=0;i<la;i++){
    25                         a1+=sout[s+i];
    26                     }
    27                     s+=la;
    28                     for(int i=0;i<lb;i++){
    29                         b1+=sout[s+i];
    30                     }
    31                     s+=lb;
    32                     for(int i=0;i<la;i++){
    33                         a2+=sout[s+i];
    34                     }
    35                     s+=la;
    36                     for(int i=0;i<lb;i++){
    37                         b2+=sout[s+i];
    38                     }
    39                     s+=lb;
    40                     for(int i=0;i<la;i++){
    41                         a3+=sout[s+i];
    42                     }
    43                     s+=lb;
    44                     if(a1==a2&&a1==a3&&b1==b2&&a1!=b1){
    45                         flag=true;
    46                         break;
    47                     }
    48                 }
    49                 if(la*3+lb*3<ls){///"ABABCAB"
    50                     a1=a2=a3=b1=b2=b3=c="";
    51                     int s=0;
    52                     for(int i=0;i<la;i++){
    53                         a1+=sout[s+i];
    54                     }
    55                     s+=la;
    56                     for(int i=0;i<lb;i++){
    57                         b1+=sout[s+i];
    58                     }
    59                     s+=lb;
    60                     for(int i=0;i<la;i++){
    61                         a2+=sout[s+i];
    62                     }
    63                     s+=la;
    64                     for(int i=0;i<lb;i++){
    65                         b2+=sout[s+i];
    66                     }
    67                     s+=lb;
    68                     int lc=ls-3*la-3*lb;
    69                     for(int i=0;i<lc;i++){
    70                         c+=sout[s+i];
    71                     }
    72                     s+=lc;
    73                     for(int i=0;i<la;i++){
    74                         a3+=sout[s+i];
    75                     }
    76                     s+=la;
    77                     for(int i=0;i<lb;i++){
    78                         b3+=sout[s+i];
    79                     }
    80                     s+=lb;
    81                     if(a1==a2&&a1==a3&&b1==b2&&b1==b3&&a1!=b1&&a1!=c&&b1!=c){
    82                         flag=true;
    83                         break;
    84                     }
    85                 }
    86             }
    87             if(flag) break;
    88         }
    89         if(flag) puts("Yes");
    90         else puts("No");
    91     }
    92     return 0;
    93 }
    View Code

     Untrusted Patrol http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5343

    并查集

      1 #include<cstdio>
      2 #include<cstring>
      3 #define mt(a,b) memset(a,b,sizeof(a))
      4 const int M=100010;
      5 struct G {
      6     struct E {
      7         int v,next;
      8     } e[M<<2];
      9     int le,head[M];
     10     void init() {
     11         le=0;
     12         mt(head,-1);
     13     }
     14     void add(int u,int v) {
     15         e[le].v=v;
     16         e[le].next=head[u];
     17         head[u]=le++;
     18     }
     19 } g;
     20 class UnionFindSet { ///并查集
     21     int par[M];
     22 public:
     23     void init() {
     24         mt(par,-1);
     25     }
     26     int getroot(int x) {
     27         int i=x,j=x,temp;
     28         while(par[i]>=0) i=par[i];
     29         while(j!=i) {
     30             temp=par[j];
     31             par[j]=i;
     32             j=temp;
     33         }
     34         return i;
     35     }
     36     bool unite(int x,int y) {
     37         int p=getroot(x);
     38         int q=getroot(y);
     39         if(p==q)return false;
     40         if(par[p]>par[q]) {
     41             par[q]+=par[p];
     42             par[p]=q;
     43         } else {
     44             par[p]+=par[q];
     45             par[q]=p;
     46         }
     47         return true;
     48     }
     49 } F;
     50 bool vis[M];
     51 int need[M];
     52 int main() {
     53     int t,n,m,K,u,v,L;
     54     scanf("%d",&t);
     55     while(t--) {
     56         scanf("%d%d%d",&n,&m,&K);
     57         mt(vis,0);
     58         for(int i=0; i<K; i++) {
     59             scanf("%d",&u);
     60             vis[u]=true;
     61         }
     62         g.init();
     63         while(m--) {
     64             scanf("%d%d",&u,&v);
     65             g.add(u,v);
     66             g.add(v,u);
     67         }
     68         scanf("%d",&L);
     69         for(int i=0; i<L; i++) {
     70             scanf("%d",&need[i]);
     71         }
     72         bool ans=true;
     73         if(L<K) {
     74             ans=false;
     75         }
     76         if(ans) {
     77             F.init();
     78             vis[need[0]]=false;
     79             for(int u=1; u<=n; u++) {
     80                 if(!vis[u]) {
     81                     for(int i=g.head[u]; ~i; i=g.e[i].next) {
     82                         int v=g.e[i].v;
     83                         if(!vis[v]) {
     84                             F.unite(u,v);
     85                         }
     86                     }
     87                 }
     88             }
     89             for(int x=1; x<L; x++) {
     90                 int u=need[x];
     91                 vis[u]=false;
     92                 for(int i=g.head[u]; ~i; i=g.e[i].next) {
     93                     int v=g.e[i].v;
     94                     if(!vis[v]) {
     95                         F.unite(u,v);
     96                     }
     97                 }
     98                 if(F.getroot(need[x-1])!=F.getroot(u)) {
     99                     ans=false;
    100                     break;
    101                 }
    102             }
    103         }
    104         if(ans) {
    105             int num=0;
    106             for(int i=1; i<=n; i++) {
    107                 if(F.getroot(i)==i) num++;
    108                 if(num>1) {
    109                     ans=false;
    110                     break;
    111                 }
    112             }
    113         }
    114         if(ans) puts("Yes");
    115         else puts("No");
    116     }
    117     return 0;
    118 }
    View Code

    end

  • 相关阅读:
    洛谷1462 通往奥格瑞玛的道路 二分+spfa
    NumPy 排序、条件刷选函数
    NumPy 统计函数
    2019-3-10——生成对抗网络GAN---生成mnist手写数字图像
    python if __name__ == 'main' 的作用和原理()
    Python os.getcwd()
    numpy.random.uniform()
    tf.trainable_variables()
    tf.layers.dense()
    彻底弄懂tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope异同
  • 原文地址:https://www.cnblogs.com/gaolzzxin/p/3960727.html
Copyright © 2020-2023  润新知