zoukankan      html  css  js  c++  java
  • 2019西安多校联训 Day5

       T1

      光哥为了不让某初二奆佬恶心到我们而留下的火种

    (貌似没这题平均分就100-了)

      思路:就一横一竖让后就gztopa嘛

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int bigg,n;
     4 int l,r;
     5 int a[100010];
     6 int puke[20];
     7 int main(){
     8     scanf("%d",&n);
     9     for(register int i=2;i<=11;i++) puke[i]=4;
    10     puke[10]+=12;
    11     for(register int i=1;i<=n;i++){
    12         scanf("%d",&a[i]);
    13         bigg+=a[i];
    14         puke[a[i]]--;
    15     }
    16     //for(register int i=1;i<=11;i++) printf("%d
    ",puke[i]);
    17     int X=21-bigg;
    18     //printf("%d
    ",X);
    19     for(register int i=2;i<=11;i++){if(i<=X) l+=puke[i];else if(i>X) r+=puke[i];}
    20     if(r>=l) printf("DOSTA");
    21     else if(l>r) printf("VUCI");
    22     return 0;
    23 }
    T1-21点

       T2

      有点考验思维的一道题,虽然题目叫LCA,但是跟LCA没有

    半毛钱关系;

      思路:先建图,我们不难发现我们把一条路左右的点数统计一下

    取min,min值*2就是这条路径最多能被遍历的次数所以我们就得到了

    此题的解法,正确性十分显然...

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 struct node{
     4     int to,nxt,w;
     5 }edge[1000010];
     6 int cnt,dd,n,x,y,z;
     7 int head[1000010];
     8 bool vis[1000010];
     9 bool chudu[1000010];
    10 int l[1000010];
    11 int aa[1000010];
    12 void addedge(int from,int to,int w){
    13     cnt++;
    14     edge[cnt].to=to;
    15     edge[cnt].w=w;
    16     edge[cnt].nxt=head[from];
    17     head[from]=cnt;
    18 }
    19 long long ans;
    20 void eat(int p){
    21     if(!chudu[p]){return;}
    22     for(register int i=head[p];i;i=edge[i].nxt){
    23         eat(edge[i].to);
    24         l[p]+=l[edge[i].to];
    25     }
    26 }
    27 void dfs(int m,int deep){
    28     for(register int i=head[m];i;i=edge[i].nxt){
    29         dfs(edge[i].to,deep+1);
    30         l[dd]=max(deep,l[dd]);
    31     }
    32 }
    33 int main(){
    34     scanf("%d",&n);
    35     for(register int i=1;i<n;i++){
    36         scanf("%d%d%d",&x,&y,&z);
    37         addedge(x,y,z);
    38         aa[y]=z;
    39         vis[y]=1;
    40         chudu[x]=1;
    41     }
    42     for(register int i=1;i<=n;i++){if(!vis[i]) dd=i;l[i]=1;}
    43     eat(dd);
    44     l[dd]=0;
    45     dfs(dd,1);
    46     for(register int i=2;i<=n;i++){
    47         int xx=min(l[i],n-l[i]);
    48         ans+=aa[i]*2*xx;
    49     }
    50     printf("%lld",ans);
    51     return 0;
    52 }
    T2-LCA

       T3

      显然这是一道字符串问题,难度中等偏高

      思路:先跑一遍manachar,求出所有最长回文串,

    其次跑一遍贪心即可

    T3-
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 char a[100010];
     4 bool f[5010][5010];
     5 bool vis[100010];
     6 int len,n,now;
     7 bool check(int l,int r){
     8     if(f[l][r]) return true;
     9     else if(a[l]==a[r]) return check(l+1,r-1);
    10     return false;
    11 }
    12 void inti(){
    13     for(register int i=1;i<=len;i++){
    14         f[i][i]=1;
    15         if(a[i]==a[i+1]) f[i][i+1]=1;
    16     }
    17     return;
    18 }
    19 int main(){
    20     while(cin>>a+1){
    21         now=0;
    22         memset(f,0,sizeof(f));
    23         memset(vis,0,sizeof(vis));
    24         len=strlen(a+1);
    25         inti();
    26         //for(register int j=1;j<=len;j++) printf("%d ",f[i][j]);printf("
    ");}
    27         //printf("
    ");
    28         for(register int i=len;i>=1;i--){
    29             for(register int j=1;j<=len-i+1;j++){
    30                 if(vis[j]) continue;
    31                 if(check(j,j+i-1)){
    32                     //cout<<j<<" "<<j+i-1<<endl;
    33                     now++;
    34                     for(register int k=j;k<=j+i-1;k++) vis[k]=1;
    35                 }//eabcbcbabaedcde
    36             }
    37         }
    38         printf("%d
    ",now-1);
    39     } 
    40     return 0;
    41 }
    萨鲁曼的半兽人

      end;

     

  • 相关阅读:
    markdown模式的一些语法
    markdown模式的一些语法
    微信小游戏跳一跳外挂教程(安卓版)
    微信小游戏跳一跳外挂教程(安卓版)
    仿百度地图上拉下滑抽屉盒
    仿百度地图上拉下滑抽屉盒
    验证码倒计时的注册页面
    验证码倒计时的注册页面
    1430 素数判定
    2834 斐波那契数
  • 原文地址:https://www.cnblogs.com/liuhailin/p/11055752.html
Copyright © 2011-2022 走看看