• Educational Codeforces Round 72 (Rated for Div. 2) A. Creating a Character


    题目原文:http://codeforces.com/contest/1217/problem/A

    题意:三个数a,b,c。。将c分配到a,b中,要分完。分完后a要严格大于b。有几种分法。

    我的思路(菜菜鸟思路):分情况,a+c<=b,b>=a,剩下的a-b如果大于c,直接输出c+1,否则找到能够分给b最大的数即可。

    AC代码

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 typedef long long ll;
     5 int main(){
     6     int T;
     7     cin>>T;
     8     while(T--){
     9         ll a,b,c;
    10         cin>>a>>b>>c;
    11         ll num;
    12         if(a+c<=b){
    13             cout<<"0"<<endl;
    14             continue;
    15         }
    16         if(b>=a){
    17             num=b-a+1;
    18             c-=num;
    19             cout<<c/2+1<<endl;
    20         }
    21         else{
    22             num=a-b;
    23             ll ans;
    24             if(num>c){
    25                 cout<<c+1<<endl;
    26                 continue;
    27             }
    28             ans=c-(c-num)/2;
    29             cout<<ans<<endl;
    30         }
    31     }
    32     return 0;
    33 }

    参考大佬代码后得到的大佬思路(细微更改):直接设b能放n个,a+c-n>=b+n+1  ,a+c-b-1>=2n,0<=n<=c。答案显而易见,注意当a+c-b-1小于0时,答案直接是0次。

    AC代码

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 typedef long long ll;
     5 int main(){
     6     int T;
     7     cin>>T;
     8     while(T--){
     9         ll a,b,c;
    10         cin>>a>>b>>c;
    11         //a+z-n>=y+n+1
    12         //a+c-b-1>=2n
    13         //0<=n<=c
    14         ll ss=0;
    15         ll num=a+c-b-1;
    16         ll num1=max(num/2,ss);
    17         if(num<0) num1=-2;
    18         cout<<max(ss,min(num1+1,c+1))<<endl;
    19     }
    20     return 0;
    21 }

    心得:多运用数学知识,思维不能硬化,要活用脑

  • 相关阅读:
    读书笔记·如何高效读懂一本书
    读书笔记·微习惯
    LittleTools之输出RenderTexture工具
    常用自制脚本(一):透明度统一修改
    LittleTool之批量修改材质
    曲面Shader
    温故而知新之镜头旋转
    LittleTools之网格输出为模型
    Unity给力插件之ShaderForge(三)
    vue的学习
  • 原文地址:https://www.cnblogs.com/xunzf0402/p/11481547.html
Copyright © 2020-2023  润新知