zoukankan      html  css  js  c++  java
  • 2020 10 23 个人赛

    C题:

    落了一个条件,啊啊啊,就WA了!

    思路:模拟,计算出加油站前的距离sum1和加油站后的距离sum2,然后模拟每一趟路程,如果此时的油量能够支撑到达下一趟的加油站,就不用加油,否则就需要加油,其中最后一趟需要特判(只需要和这一趟比较即可)。

    另外看题解的时候学会了位运算的意义:a<<b:  a*(2^b)   a>>b:  a/(2^b)

    代码如下:

    #include<bits/stdc++.h>

    using namespace std;

    #define ll long long

    int main()

    {

       ll n,i,j,k;

       ll a,b,f;

       cin>>a>>b>>f>>k;

       if(f>b)

       {

           cout<<-1<<endl;

           return 0;

       }

       ll sum1,sum2;

       sum1=f-0;

       sum2=a-f;

       if(sum2>b)

       {

           cout<<-1<<endl;

           return 0;

       }

       ll tank=b;

       bool flag=1;

       ll ans=0;

       for(i=0;i<k-1;i++)

       {

           if(i&1)

           {

               if(tank<sum2)

               {

                   flag=0;

                   break;

               }

               else if(tank>=(a+sum1))

               {

                   tank-=a;

               }

               else

               {

                   ans++;

                   tank=b-sum1;

               }

           }

           else

           {

               if(tank<f)

               {

                   flag=0;

                   break;

               }

               else if(tank>=(a+sum2))

               {

                   tank-=a;

               }

               else

               {

                   ans++;

                   tank=b-sum2;

               }

           }

       }

       if(i&1)

       {

           if(tank<sum2)

           {

               flag=0;

           }

           else if(tank>=sum2&&tank<a)

           {

               ans++;

           }

           else

           {

               ;

           }

       }

       else

       {

           if(tank<sum1)

           {

               flag=0;

           }

           else if(tank>=sum1&&tank<a)

           {

               ans++;

           }

           else

           {

               ;

           }

       }

       if(flag==0)

       {

           cout<<-1<<endl;

       }

       else

       {

           cout<<ans<<endl;

       }

        return 0;

    }

  • 相关阅读:
    python线程详解
    Beego框架在模板中使用自定义函数
    golang打印英文格式时间日期
    如何让SQL语句不执行默认排序,而是按照in语句的顺序返回结果
    Git clone 报错 Unable to negotiate with xxx.xxx.xxx.xxx port 12345: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc
    Mysql去掉html标签函数
    Nodejs的npm安装模块时候报错:npm ERR! Error: CERT_UNTRUSTED的解决方法
    树莓派使用DHT11温湿度传感器
    ubuntu源列表(清华,阿里,官方,选一即可)
    将tgz文件解压到指定目录
  • 原文地址:https://www.cnblogs.com/chengxvzhishen/p/13908967.html
Copyright © 2011-2022 走看看