zoukankan      html  css  js  c++  java
  • Codeforces Beta Round #76 (Div. 1 Only)

    无聊和欧阳一起比赛。。。 

    才发现差距是巨大的, 欧阳的思维+编程的速度比我快了3倍左右。 也就是一般的题 我a了一题, 他就可以a 3题。 

    加油吧, 菜鸟。

    a. 题意是简单的,但是情况稍微一点多。。。 注意这些情况就可以了

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    using namespace std;
    
    
    int main()
    {
        int x,y;
        int x1,y1,x2,y2;
        int n,m,a,b;
        scanf("%d%d%d%d",&n,&m,&a,&b);
        x=(a-1)/m;
        y=(a-1)%m+1;
    
        x1=(b-1)/m;
        y1=(b-1)%m+1;
        
        x2=(n-1)/m;
        y2=(n-1)%m+1;
        if(x==x1) printf("1");
        else
        {
            if(b==n) 
            {
                if(y==1) printf("1");
                else printf("2");
                return 0;
            }
            if(y==1)
            {
                if(b==n)
                {
                    printf("1");
                    return 0;
                }
                if(y1==m) printf("1");
                else printf("2");
                return 0;
            }
            if(y1==m)
            {
                printf("2");
                return 0;
            }
            if(y==y1+1)
            {
                printf("2");
            }
            else 
            {
                if(x==x1-1) printf("2");
                else 
                {
                    if(b==n)
                    {
                        if(y>y1) printf("3");
                        else printf("2");
                    }
                    else
                        printf("3");
                }
            }
        }
        return 0;
    }

    b. 一开始就被坑了, 以为是用网络流做的题(用网络比较难做),后面发现基本的贪心就可以解决, 从第一瓶开始倒,每次都尽量倒完,如果有一瓶需要倒到3或3个以上的杯子,则说明无解...

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    using namespace std;
    
    struct node
    {
        int id;
        double w;
    };
    
    node g[55][55];
    double h[55];
    
    int main()
    {
        double n,w;
        int m;
        scanf("%lf%lf%d",&n,&w,&m);
        for(int i=1;i<=n;i++)
            h[i]=w;
        memset(g,0,sizeof(g));
        double tmp;
        tmp=(n*w)/(double)m;
        int cnt=1;
        int flag=0;
        for(int i=1;i<=m;i++)
        {
            if(flag>=2)
            {
                printf("NO");
                return 0;
            }
            double sum=0;
            int tcnt=0;
            while( h[cnt]+sum < tmp-0.000001)
            {
                sum += h[cnt];
                g[i][tcnt].id=cnt;
                g[i][tcnt].w=h[cnt];
                cnt++;
                flag=0;
                tcnt++;
            }
            if( h[cnt]+sum >= tmp -0.0000001&&h[cnt]+sum<=tmp+0.0000001)
            {
                g[i][tcnt].id=cnt;
                g[i][tcnt].w=h[cnt];
                flag=0;
                cnt++;
            }
            else
            {
                g[i][tcnt].id = cnt;
                g[i][tcnt].w = tmp-sum;
                h[cnt] -= tmp-sum;
                flag++;
            }
        }
        printf("YES\n");
        for(int i=1;i<=m;i++)
        {
            int j=0;
            while(g[i][j].id!=0)
            {
                printf("%d %.6lf ",g[i][j].id,g[i][j].w);
                j++;
            }
            printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    MongoVUE破解方法(转)
    Apache和IIS共享80端口,支持多域名
    让作业飞吧,与屌丝兄弟们分享我的分布式作业调度平台 【拥抱开源,拥抱作业调度的神器Quartz.net】
    关于Nbearlite 访问PostgreSql,MySql,Sqlite的Bug
    php5.4.6/5.3.16/5.2.17安装(In windows),配置(转)
    MSSQL翻页存储过程
    话说客户端连接mongoDB的连接参数(转载)
    关于Windows频繁打开关闭端口时出现的问题(转至老赵)
    zeromq的几种模式(转)
    如何设置代理服务器上网
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/2964642.html
Copyright © 2011-2022 走看看