zoukankan      html  css  js  c++  java
  • Codeforces Round #324 (Div. 2)

    今天写写cf上以前的水题,找找自信

    A. Olesya and Rodion

    此题要求一个能被t整除的n位数,直接t为开始,后面全部为0. 当然,需要排除位数为1但t=10的情况。

     1 #include<cstdio>  
     2 #include<cstring>  
     3 #include<iostream>  
     4 #include<algorithm>  
     5 using namespace std;  
     6   
     7 int main()  
     8 {  
     9     int n,t,i;  
    10     scanf("%d%d",&n,&t);  
    11     if (n==1 && t==10)   
    12         printf("-1
    "); 
    13     else  
    14     {  
    15         if (t==10)   
    16             t=1;  
    17         printf("%d",t);  
    18         for (int i=0;i<n-1;i++)  
    19             printf("0");  
    20         printf("
    ");  
    21     }  
    22     return 0;  
    23 }

    B. Kolya and Tanya

    给你一个环,环上有3n个点,每个点的权值可以是1-3,然后问你满足a[i]+a[i+1]+a[i+2]!=6的方案有多少种,具体做法是先求出反例的情况,即a[i]+a[i+1]+a[i+2]=6的情况,这三个数的取值一共有7种,那么答案就是 3^(3n) - 7^n

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 using namespace std;
     8 
     9 #define MOD 1000000007  
    10 
    11 int n;  
    12 
    13 LL pw(int a,int x)  
    14 {  
    15     LL k=1;  
    16     for (int i=1;i<=x;i++)  
    17         k=(k*a)%MOD;  
    18     return k%MOD;  
    19 }  
    20   
    21 int main()  
    22 {
    23   scanf("%d",&n);  
    24     printf("%I64d
    ",(pw(27,n)-pw(7,n)+MOD)%MOD);  
    25     return 0;  
    26 }

    C. Marina and Vasya

    要求与两个字符串的不同字符都为t的第三个字符串。 

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 using namespace std;
     8 
     9 typedef long long LL;
    10 
    11 #define N 100010
    12 
    13 int n,t;
    14 int ans;
    15 char a[N],b[N],c[N];
    16 
    17 int main()  
    18 {
    19       scanf("%d%d",&n,&t);
    20     scanf("%s%s",a+1,b+1);
    21     t=n-t;
    22     for (int i=1;i<=n;i++)
    23         if (a[i]==b[i])
    24             ans++;
    25     if (ans+(n-ans)/2<t)
    26     {
    27         printf("-1
    ");    
    28         return 0;
    29     }
    30     int k=min(t,ans);
    31     for (int i=1,j=1;i<=n && j<=k;i++)
    32         if (a[i]==b[i])
    33             c[i]=a[i],j++;
    34     for (int i=1,j=1;i<=n && j<=t-k;i++)
    35         if (a[i]!=b[i] && !c[i])
    36             c[i]=a[i],j++;
    37     for (int i=1,j=1;i<=n && j<=t-k;i++)
    38         if (a[i]!=b[i] && !c[i])
    39             c[i]=b[i],j++;
    40     for (int i=1;i<=n;i++)
    41         if (!c[i])
    42             for (int j='a';j<='z';j++)
    43                 if (a[i]!=j && b[i]!=j)
    44                 {
    45                     c[i]=j;
    46                     break;
    47                 }
    48     printf("%s
    ",c+1);
    49     return 0;
    50 }

    D. Dima and Lisa

    把一个数插成1或2或3个素数

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 using namespace std;
     8 
     9 typedef long long LL;
    10 
    11 #define N 100010
    12 
    13 int n;
    14 
    15 bool check(int x) 
    16 {
    17     for (int i=2;i<=sqrt(x);i++)
    18         if (x%i==0)
    19       return false;
    20     return true;
    21 }
    22 
    23 int main()  
    24 {
    25      scanf("%d",&n);
    26     if (check(n))
    27     {
    28         printf("1
    %d",n);
    29         return 0;
    30     }
    31     for (int i=n;i;i-=2)
    32         if (check(i))
    33         {
    34             int k=n-i;
    35             if (check(k))
    36             {
    37                 printf("2
    %d %d
    ",i,k);
    38                 return 0;
    39             }
    40             for (int j=k-2;j;j--)
    41                 if (check(j) && check(k-j))
    42                 {
    43                     printf("3
    %d %d %d
    ",i,j,k-j);
    44                     return 0;
    45                 }            
    46         }
    47     return 0;
    48 }

    E. Anton and Ira

    给两个数组,要求让第一个数组变成第二个数组,可以进行交换操作

    每次交换操作的代价是abs(i-j)

    然后让你把方案输出出来

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 using namespace std;
     8 
     9 typedef long long LL;
    10 
    11 #define N 2010
    12 #define M 2000010
    13 
    14 int a[N],b[N],c[N];
    15 int l[M],r[M];
    16 
    17 int n;
    18 int ans,cnt;
    19 
    20 int main()
    21 {
    22         scanf("%d",&n);
    23     for (int i=1;i<=n;i++)
    24         scanf("%d",&a[i]);
    25     for (int i=1;i<=n;i++)
    26         scanf("%d",&b[i]),c[b[i]]=i;
    27     for (int i=1;i<=n;i++)
    28     {
    29         if (a[i]!=b[i])
    30         {
    31             int k=-1;
    32             for (int j=i+1;j<=n;j++)
    33                 if (a[j]==b[i])
    34                 {
    35                     k=j;
    36                     break;
    37                 }
    38             while (k!=i)
    39                 for (int j=i;j<k;j++)
    40                     if (c[a[j]]>=k)
    41                     {
    42                         ans+=abs(k-j);
    43                         swap(k,j);
    44                         swap(a[k],a[j]);
    45                         l[++cnt]=k;
    46                         r[cnt]=j;
    47                         break;
    48                     }
    49         }
    50     }
    51     printf("%d
    %d
    ",ans,cnt);
    52     for (int i=1;i<=cnt;i++)
    53         printf("%d %d
    ",l[i],r[i]);
    54     return 0;
    55 }
    56  
  • 相关阅读:
    Get distinct count of rows in the DataSet
    单引号双引号的html转义符
    PETS Public English Test System
    Code 39 basics (39条形码原理)
    Index was outside the bounds of the array ,LocalReport.Render
    Thread was being aborted Errors
    Reportviewer Error: ASP.NET session has expired
    ReportDataSource 值不在预期的范围内
    .NET/FCL 2.0在Serialization方面的增强
    Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
  • 原文地址:https://www.cnblogs.com/yangjiyuan/p/5348412.html
Copyright © 2011-2022 走看看