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;

    }

  • 相关阅读:
    netbeans 打开项目时没有出现咖啡哪个标记
    java swing客户端程序调试的一些方式
    java客户端布局 GroupLayout 控件、按钮等布局
    ActiveMQ 增加消息 消费消息
    HBase学习解析之起源.md
    Hadoop学习解析之资源管理调度框架YARN
    Hive学习解析之工作原理.md
    Hive学习解析之系统架构.md
    js实现ajax获取的文件base64字符串处理.md
    springboot2.x整合quartz2.x.md
  • 原文地址:https://www.cnblogs.com/chengxvzhishen/p/13908967.html
Copyright © 2011-2022 走看看