zoukankan      html  css  js  c++  java
  • 11.8模拟赛

    题解:模拟

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    int n,mx;
    
    int c[55],ans[55];
    
    char s[55];
    
    int main(){
        freopen("soccer.in","r",stdin);
        freopen("soccer.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",s+1);
            for(int j=1;j<=n;j++){
                if(s[j]=='W')c[i]+=3;
                if(s[j]=='L')c[j]+=3;
                if(s[j]=='D')c[i]++,c[j]++;
            }
        }
        for(int i=1;i<=n;i++)mx=max(mx,c[i]);
        for(int i=1;i<=n;i++)if(c[i]==mx)printf("%d ",i);
        fclose(stdin);fclose(stdout);
        return 0;
    }
    AC

    题解:

    暴力

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #define N 1020
    using namespace std;
    
    int n,b1,b2;
    
    int vis[55];
    
    double xi[N],yi[N],dis[55][55];
    
    double ans;
    
    inline int read(){
        char ch=getchar();int x=0,f=1;
        for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
        for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';
        return x*f;
    }
    
    double dist(int x,int y){
        return (double)sqrt((xi[y]-xi[x])*(xi[y]-xi[x])+(yi[x]-yi[y])*(yi[x]-yi[y]));
    }
    
    void dfs(int now1,int now2,double sum){
        if(now1==n&&now2==n){
            if(b1==1)vis[0]=1;if(b2==1)vis[0]=2;
            if(b1==1&&b2==1)vis[1]=-1;
            if((vis[b1]==1&&vis[b2]==2)||(vis[1]==-1))ans=min(ans,sum);
            return;
        }
        int k=max(now1,now2);
        if(k==n)k=min(now1,now2);k++;
        if(now1!=n&&vis[k]!=2){
            if(k!=n)vis[k]=1;
            dfs(k,now2,sum+dis[now1][k]);
            vis[k]=0;
        }
        if(now2!=n&&vis[k]!=1){
            if(k!=n)vis[k]=2;
            dfs(now1,k,sum+dis[now2][k]);
            vis[k]=0;
        }
    }
    
    int main(){
        freopen("paths.in","r",stdin);
        freopen("paths.out","w",stdout);
        n=read();b1=read();b2=read();b1++;b2++;
        for(int i=1;i<=n;i++)scanf("%lf%lf",&xi[i],&yi[i]);
        for(int i=1;i<=n;i++)
         for(int j=i+1;j<=n;j++)
          dis[j][i]=dis[i][j]=dist(i,j);
        ans=1000000000.0;vis[0]=1;
        dfs(1,1,0.0);
        printf("%.2lf
    ",ans);
        fclose(stdin);fclose(stdout);
        return 0;
    }
    20

    题解:

    为什么在笔记本里改是不对的...对拍了半天的0分暴力...竟然是对的..

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define N 1000008
    #define M 200005
    using namespace std;
    
    int n,m,nowcnt;
    
    int c[N],w[N];
    //c数组离散化,怕车编号有负数,p数组记录停车位置、w数组表示第i辆车停在哪个位置 
    bool p[N]; 
    
    inline int read(){
        char ch=getchar();int x=0,f=1;
        for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
        for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';
        return x*f;
    }
    
    void stopcar(int x){
        int pos,mx=-1;
        for(int i=1;i<=n+1;i++){
            int st=-1;
            if(p[i]==0)st=i;
            while(p[i]==0&&i<=n)i++;
            if(st!=-1){
                if(st==1){
                    if(i-st-1>mx)mx=i-st,pos=1;
                }else
                if(i==n+1){
                    if(i-st-1>mx)mx=i-st,pos=n; 
                }else {
                    int len=i-st;
                    len=(len-1)/2;
                    if(len>mx)mx=len,pos=st+len;
                }
            }
            st=-1;
        }
        w[x]=pos;p[pos]=true;
        printf("%d
    ",pos);
    }
    
    int main(){
       // freopen("in.txt","r",stdin);
      //  freopen("wa.out","w",stdout);
        n=read();m=read();
        for(int i=1;i<=m;i++){
            int od,x;
            od=read();x=read();
            if(od==1){
                nowcnt++;c[nowcnt]=x;
                stopcar(nowcnt);
            }
            if(od==2){
                for(int j=1;j<=nowcnt;j++){
                    if(c[j]==x){
                        p[w[j]]=0;c[j]=10000000;break;
                    } 
                }
            }
        }
        fclose(stdin);fclose(stdout);
        return 0;
    }
    55暴力
  • 相关阅读:
    iReport+jasperreport创建子表的几种方式(1)
    android:TableLayout表格布局详解
    从头学Android系列
    Android微信SDK API 调用教程【转】
    分享:Android中利用机器码注册机制防止破解(转)
    保持长宽比 对背景图像进行修改android:scaleType="fitXY"
    关于内存管理的黄金法则
    LeetCode 97 Interleaving String
    二维数组的创建
    eclipse中报错:java.lang.OutOfMemoryError: Java heap space
  • 原文地址:https://www.cnblogs.com/zzyh/p/7804201.html
Copyright © 2011-2022 走看看