2017年西南民族大学程序设计竞赛-网络同步赛(代码)

Posted ---学习ing---

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017年西南民族大学程序设计竞赛-网络同步赛(代码)相关的知识,希望对你有一定的参考价值。

 

20598954    nmphy    D    答案正确    8    512    486    C++    2017-12-30 14:30:35
20598712    nmphy    E    答案正确    3    504    695    C++    2017-12-30 14:25:59
20598181    nmphy    E    答案正确    3    484    659    C++    2017-12-30 14:15:16
20597638    nmphy    E    答案正确    3    504    505    C++    2017-12-30 14:05:08//比赛时候这里显示的是WA,而且显示准确率5%
20597208    nmphy    F    答案正确    3    272    569    C++    2017-12-30 13:57:09
20596793    nmphy    H    答案正确    3    384    312    C++    2017-12-30 13:49:00
20596485    nmphy    J    答案正确    15    512    493    C++    2017-12-30 13:43:23
20596125    nmphy    G    答案正确    4    396    768    C++    2017-12-30 13:36:12
20596077    nmphy    G    答案正确    3    384    768    C++    2017-12-30 13:35:22
20595884    nmphy    G    答案错误    4    384    840    C++    2017-12-30 13:31:43
20595709    nmphy    G    答案错误    4    384    825    C++    2017-12-30 13:28:29
20595099    nmphy    I    答案正确    4    384    386    C++    2017-12-30 13:16:36
20594924    nmphy    K    答案正确    4    436    555    C++    2017-12-30 13:13:09
20594652    nmphy    D    段错误    3    384    485    C++    2017-12-30 13:07:57
20594225    nmphy    C    答案正确    71    3904    560    C++    2017-12-30 12:59:14
20594201    nmphy    C    答案正确    69    4028    560    C++    2017-12-30 12:58:48
20593760    nmphy    B    答案正确    3    512    553    C++    2017-12-30 12:49:38
20593541    nmphy    A    答案正确    516    13056    988    C++    2017-12-30 12:44:16

反正就是12.30知道他们有比赛,赶紧注册的。。14.30AK,排名第7。。。难道我是难题渣。。。水题王。。。打表。。。贪心。。。

E题比赛时错了很多次,后来刷新后就A了。。。可能数据有点极端。(耽误了我20分钟。比完才告诉我A了,我以为10题挂机,结果AK了)。

A:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1010;
int x[maxn][maxn],y[maxn][maxn];
char ch[maxn][maxn],opt[10];
int main()
{
    int n,m,q,i,j,a,b;
    while(~scanf("%d%d%d",&n,&m,&q)){
        for(i=1;i<=n;i++)
         for(j=1;j<=m;j++)
          cin>>ch[i][j];
        for(i=1;i<=n;i++)
         for(j=1;j<=m;j++)
          x[i][j]=x[i][j-1]+(ch[i][j]==#?1:0);
        for(i=1;i<=n;i++)
         for(j=1;j<=m;j++)
          y[i][j]=y[i-1][j]+(ch[i][j]==#?1:0);
        for(i=1;i<=q;i++){
            scanf("%d%d%s",&a,&b,opt);
            if(opt[0]==D){
                if(y[n][b]-y[a-1][b]==0)  printf("YES\n");
                else printf("NO\n");
            }
            else if(opt[0]==U){
                 if(y[a][b]-y[0][b]==0) printf("YES\n");
                 else printf("NO\n");
            }
            else if(opt[0]==R){
                if(x[a][m]-x[a][b-1]==0)  printf("YES\n");
                else printf("NO\n");
            }
            else if(opt[0]==L)    {
                if(x[a][b]-x[a][0]==0) printf("YES\n");
                else printf("NO\n");
            }      
        }
    } return 0;
}
View Code

B:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int maxn=1010000;
char ch[maxn];
int vis[100];
int main()
{
    while(~scanf("%s",ch)){
        int L=strlen(ch);
        for(int i=0;i<=10;i++) vis[i]=0;
        bool Flag=true;int cnt=0;
        for(int i=0;i<L;i++) {
            if(ch[i]<0||ch[i]>9){ Flag=false;break;}
            if(vis[ch[i]-0]==0){
               cnt++;
               vis[ch[i]-0]=1;
               if(cnt>=2) { Flag=false;break;}
            }
        }
        if(Flag) printf("YES\n");
        else printf("NO\n");
    } return 0;
}
View Code

C:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
ll ans;
struct in
{
    ll a;
    ll b;
    ll c;
}x[100010];
bool cmp(in x,in y){
    return x.c>y.c;
}
int main()
{
    int i,j,k,n;
    while(~scanf("%d%d",&n,&k)){
        for(i=1;i<=n;i++) scanf("%lld",&x[i].a);
        for(i=1;i<=n;i++) scanf("%lld",&x[i].b);
        for(i=1;i<=n;i++) x[i].c=x[i].a-x[i].b;
        sort(x+1,x+n+1,cmp);
        for(i=1;i<=k;i++) ans+=x[i].a;
        for(i=k+1;i<=n;i++) ans+=x[i].b;
        printf("%lld\n",ans);
    } return 0;
}
View Code

D:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
const int maxn=10010;
ll ans,w[maxn],sum[maxn];
int main()
{
    int i,j,n,m,L,R;
    while(~scanf("%d",&n)){
        ans=0;
        for(i=1;i<=n;i++) scanf("%lld",&w[i]),sum[i]=sum[i-1]+w[i];
        scanf("%d",&m);
        for(i=1;i<=m;i++){
           scanf("%d%d",&L,&R);
           if(sum[R]-sum[L-1]>0) ans+=sum[R]-sum[L-1];
        }
        printf("%lld\n",ans);
    }  return 0;
}
View Code

E:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
const int Mod=1000000007;
ll ans1,ans2;
ll q_pow(ll a,ll x)
{
    ll res=1;a%=Mod;
    while(x){
        if(x&1LL) res=res*a%Mod;
        x>>=1;
        a=a*a%Mod;
    } return res;
}
int main()
{
    ll m,n;
    while(~scanf("%lld%lld",&n,&m)){
        m%=Mod;
        ans1=q_pow(m,n);
        ans2=q_pow(m-1,n-1);
        ans2=ans2*m%Mod;
        printf("%lld\n",((ans1-ans2)%Mod+Mod)%Mod);
    } return 0;
}
View Code

F:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
int x[]={0,1,2,2,3,3,4,4};
char c[20][20];
int main()
{
    int n,ans,i,j;
    while(~scanf("%d",&n)){
        if(n==0) return 0;
        ans=0;
        for(i=1;i<=13;i++){
            scanf("%s",c[i]+1);
            for(j=1;j<=13;j++){
                 if(c[i][j]==#) {
                     int tmp=i;
                     if(14-i<tmp) tmp=14-i;
                     if(j<tmp) tmp=j;
                     if(14-j<tmp) tmp=14-j;
                     ans+=x[tmp];
                 }
            }
        }
        printf("%.2lf\n",(double)(1.0*ans)/n);
    } return 0;
}
View Code

G:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
char a[10],b[10];
int s[100];
int main()
{
    int n,i,j,ans1,ans2;
    s[J-A+1]=1;
    s[M-A+1]=2;
    s[T-A+1]=3;
    s[S-A+1]=4;
    s[H-A+1]=5;
    while(~scanf("%d",&n)){
        ans1=0;ans2=0;
        for(i=1;i<=n;i++){
            scanf("%s%s",a,b);
            if(s[a[0]-A+1]==s[b[0]-A+1]) ans1++,ans2++;
            else if(s[a[0]-A+1]==s[b[0]-A+1]-1) ans1+=3;
            else if(s[b[0]-A+1]==s[a[0]-A+1]-1) ans2+=3;
            else if(s[a[0]-A+1]==1&&s[b[0]-A+1]==5) ans2+=3;
            else if(s[b[0]-A+1]==1&&s[a[0]-A+1]==5) ans1+=3;
        }
        if(ans1>ans2) printf("Alice\n");
        else if(ans1<ans2)printf("Bob\n");
        else printf("Draw\n");
    }return 0;
}
View Code

H:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
int main()
{
    int n,i;
    while(~scanf("%d",&n)){
        for(i=1;i<=n;i++) printf("gu...");
        printf("\nThe story is so boring. And I am so hungry!\n");
    } return 0;
}
View Code

I:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
ll ans;
ll dp[30][2];
int main()
{
    int n,i,j;
    while(~scanf("%d",&n)){
        dp[1][1]=1;dp[1][0]=1;
        for(i=2;i<=n;i++){
            dp[i][1]=dp[i-1][1]+dp[i-1][0];
            dp[i][0]=dp[i-1][1];
        }
        printf("%lld\n",dp[n][0]+dp[n][1]);
    }
    return 0;
}
View Code

J:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
const int maxn=100010;
char c[maxn],a[10],b[10];
int x[30];
int Up[maxn];
int main()
{
    int i,n,j,m,L;
    while(~scanf("%s",c)){
        for(i=1;i<=26;i++) x[i]=i;
        L=strlen(c);
        scanf("%d",&m);
        for(i=1;i<=m;i++){
            scanf("%s%s",a,b);
            swap(x[a[0]-a+1],x[b[0]-a+1]);
        }
        for(i=0;i<L;i++) printf("%c",x[c[i]-a+1]+a-1);
    } return 0;
}
View Code

K:

技术分享图片
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#define ll long long 
using namespace std;
const int maxn=10010;
ll sum[maxn],Max;
int main()
{
    int n,m,i,j,L,R;
    while(~scanf("%d%d",&n,&m)){
        Max=0;for(i=1;i<=5000;i++) sum[i]=0;
        for(i=1;i<=n;i++) {
            scanf("%d%d",&L,&R);
            sum[L]++;
            sum[R+1]--;
        }
        for(i=1;i<=5000;i++) {
            sum[i]+=sum[i-1];
            if(sum[i]>Max) Max=sum[i];
        }
        if(Max%m==0) printf("%lld\n",Max/m);
        else printf("%lld\n",Max/m+1);
    } return 0;
}
View Code

 

以上是关于2017年西南民族大学程序设计竞赛-网络同步赛(代码)的主要内容,如果未能解决你的问题,请参考以下文章

12.28西南民族大学第十一届程序设计竞赛(同步赛)

西南民族大学第十届校赛(同步赛)

新年第一篇!西南民族大学第十届校赛(同步赛)

西南民族大学第十届校赛(同步赛) D

第十八届西南科技大学ACM程序设计竞赛(同步赛)签到题 6题

南昌大学航天杯第二届程序设计竞赛校赛网络同步赛 G