• cocktail with pony (模拟+写语句时的注意)


    思路:没啥好说的,就是在转移的过程中有一个条件要特判一下

    后记:

    • 在写代码的时候 能写if else 就写,不要写2个if,不然 当第一个if里面的 条件元素 变换后,也会影响到后面的条件元素,进行2次条件判断了!!!
    • 所以 要么写 if else ,要么每一个if 都写 continue 
    #include <bits/stdc++.h>
    using namespace std;
    #define  M 10005
    #define ri register int
    
    template <class G> void read(G &x)
    {
        x=0;int f=0;char ch=getchar();
        while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();}
        while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
        x=f?-x:x;
        return ;
    }
    
    int T;
    int v1,v2,x1,x2,n;
    int main(){
        
        
        read(T);
        while(T--)
        {
            read(n);read(v1);read(v2);read(x1);read(x2);
            if(x1<x2)
            {
                long long  ans=0;
                while(1)
                {
                    if(x2+v2<=n) x2+=v2,ans++;
                    else
                    {
                        ans++;
                        if(x1==n-1)
                        {
                            printf("%lld\n",ans);
                            break;
                        }
                        int tmp=n-x2;
                        tmp=v2-tmp;
                        if(tmp&1) x2=n-1;
                        else x2=n;    
                    }
                    ans++;
                    x1+=v1;
                    if(x1>=x2)
                    {
                        printf("%lld\n",ans);
                        break;
                    }
                }
            }else 
            {
                long long  ans=0;
                while(1)
                {
                    if(x2-v2>=1) x2-=v2,ans++;
                    else
                    {
                        ans++;
                        if(x1==2)
                        {
                            printf("%lld\n",ans);
                            break;
                        }
                        int tmp=x2-1;
                        tmp=v2-tmp;
                        if(tmp&1) x2=2;
                        else x2=1;    
                    }
                    ans++;
                    x1-=v1;
                    if(x1<=x2)
                    {
                        printf("%lld\n",ans);
                        break;
                    }
                }
            }
        }
        return 0;
        
        
        
    }
    View Code
  • 相关阅读:
    php+ajax文件上传
    安装ruby及sass
    大佬
    ES6--let,解构赋值,promise && ES7--async
    miniapp基础
    8月笔记
    webpack 打包html文件
    webpack压缩打包不成功
    nvm安装成功后,但命令不可用(command not found)
    jq库extend的区别
  • 原文地址:https://www.cnblogs.com/Lamboofhome/p/16230191.html
Copyright © 2020-2023  润新知