• Codeforces Round #403 (Div. 2)解题报告


    A.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=1e5+5;
    15 int n;
    16 int an=0,ans;
    17 bool vi[MAX];
    18 int main()
    19 {
    20     scanf("%d",&n);
    21     int tem;
    22     ans=0;
    23     for(int i=0;i<2*n;i++)
    24     {
    25         scanf("%d",&tem);
    26         if(vi[tem])
    27             an--;
    28         else
    29         {
    30             an++;
    31             ans=max(an,ans);
    32             vi[tem]=true;
    33         }
    34 
    35     }
    36     printf("%d
    ",ans);
    37 }
    View Code

    B.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=6e4+5;
    15 int n;
    16 int lo[MAX],v[MAX];
    17 bool test(double t)
    18 {
    19     double zuo=0.0,you=(double)1e18;
    20     double teml,temr;
    21     for(int i=0;i<n;i++)
    22     {
    23         teml=(double)lo[i]-t*(double)v[i];
    24         temr=(double)lo[i]+t*(double)v[i];
    25         zuo=max(teml,zuo);you=min(you,temr);
    26         if(zuo-you>0.0000001)
    27             return false;
    28     }
    29     return true;
    30 }
    31 int main()
    32 {
    33     scanf("%d",&n);
    34     for(int i=0;i<n;i++)
    35         scanf("%d",&lo[i]);
    36     for(int i=0;i<n;i++)
    37         scanf("%d",&v[i]);
    38     double l=0.0,r=1000000000.0,mid;
    39     while(r-l>0.0000001)
    40     {
    41         mid=(l+r)/(double)2.0;
    42         if(test(mid))
    43             r=mid;
    44         else
    45             l=mid;
    46     }
    47     printf("%.7f
    ",mid);
    48 
    49 
    50 }
    View Code

    二分,注意次数不能太多

    C.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=2e5+5;
    15 int col[MAX];
    16 vector <int> v[MAX];
    17 int n;
    18 int x,y;
    19 bool vi[MAX];
    20 int an=0;
    21 int pos;
    22 void dfs(int k,int t)
    23 {
    24     int lo;
    25     int num=1;
    26     for(int i=0;i<v[k].size();i++)
    27     {
    28         lo=v[k][i];
    29         if(!vi[lo])
    30         {
    31             for(int s=num;s<=an;s++)
    32             {
    33                 if(s!=col[k]&&s!=col[t])
    34                 {
    35                     col[lo]=s;
    36                     num=s+1;
    37                     break;
    38                 }
    39             }
    40             vi[lo]=true;
    41             dfs(lo,k);
    42         }
    43     }
    44     v[k].clear();
    45 }
    46 int main()
    47 {
    48     scanf("%d",&n);
    49     for(int i=0;i<n-1;i++)
    50     {
    51         scanf("%d %d",&x,&y);
    52         v[x].push_back(y);
    53         v[y].push_back(x);
    54     }
    55     for(int i=1;i<=n;i++)
    56     {
    57         if(v[i].size()>=an)
    58         {
    59             pos=i;
    60             an=v[i].size()+1;
    61         }
    62     }
    63     printf("%d
    ",an);
    64     col[pos]=1;
    65     vi[pos]=true;
    66     dfs(pos,-1);
    67     for(int i=1;i<=n;i++)
    68         printf("%d ",col[i]);
    69     printf("
    ");
    70 }
    View Code

    关于树非常简单的染色问题。利用了树无环的性质。

    D.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=1e3+5;
    15 string a[MAX],b[MAX];
    16 set <string> re,ret;
    17 string x,y;
    18 int n;
    19 int main()
    20 {
    21     cin>>n;
    22     for(int i=0;i<n;i++)
    23     {
    24         cin>>x>>y;
    25         a[i]=x.substr(0,3);
    26         b[i]=x.substr(0,2)+y.substr(0,1);
    27         if(re.count(a[i]))
    28             ret.insert(a[i]);
    29         re.insert(a[i]);
    30     }
    31     re.clear();
    32     for(int i=0;i<n;i++)
    33     {
    34         if(!re.count(b[i]))
    35         {
    36             a[i]=b[i];
    37             re.insert(b[i]);
    38         }
    39         else
    40         {
    41             if(ret.count(a[i])||re.count(a[i]))
    42             {
    43                 printf("NO
    ");
    44                 return 0;
    45             }
    46             re.insert(a[i]);
    47         }
    48     }
    49     printf("YES
    ");
    50     for(int i=0;i<n;i++)
    51         cout<<a[i]<<"
    ";
    52 }
    View Code

    贪心

  • 相关阅读:
    DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
    C#中全局作用域的常量、字段、属性、方法的定义与使用
    DevExpress的TreeList的常用属性设置以及常用事件
    DevExpress的TreeList怎样设置数据源,从实例入手
    一、ABP框架框架摘要
    十、LINQ查询之延迟执行
    一、
    二、core abp 数据库迁移
    十一、ASP.NET Boilerplate
    十、ABP
  • 原文地址:https://www.cnblogs.com/quintessence/p/6514850.html
Copyright © 2020-2023  润新知