关于昨天CF的C题

灌水区

沉石鱼惊旋 @ 2022-02-01 14:19:39

赛时AC,被hack或者系统测试WA的小伙伴站出来一下,让我有点心里安慰


by _biscuitbc @ 2022-02-01 14:22:22

被 hack++ /kk


by 沉石鱼惊旋 @ 2022-02-01 14:23:14

顺便求改代码,赛后修改WA on 13。

void solve()
{
    long long hc,dc,hm,dm,k,w,a;
    cin>>hc>>dc>>hm>>dm>>k>>w>>a;
    for(long long i=0;i<=k;i++)
    {
        long long x=i,y=k-i;
        long long rnd=ceil(hm*1.0/(dc+x*w));
        if(rnd*(dc+x*w)>=hm&&dm*(rnd-1)<hc+a*y)
        {
            puts("YES");
            return;
        }
    }
    puts("NO");
}

by Hiiragi_Utena @ 2022-02-01 14:23:21

没我事了但是放张图:


by Hiiragi_Utena @ 2022-02-01 14:24:47

我的没fst的代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
#define inf 0x3f3f3f3f
#define RI register signed
#define RC register char
#define RB register bool
inline int read(){
    RI res=0;RC ch=getchar();RB sng=false;
    while(ch<'0'||ch>'9'){
        if(ch=='-')sng=true;else sng=false;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        res=(res<<1)+(res<<3)+(ch^48);
        ch=getchar();
    }
    return sng?(-res):res;
}
int T;
long long hc,dc,hm,dm,k,w,a; 
int main(){
    T=read();
    while(T--){
        scanf("%lld%lld%lld%lld%lld%lld%lld",&hc,&dc,&hm,&dm,&k,&w,&a);
        bool rsg23=false;
        hc--;hm--;dc+=k*w;
        for(int i=0;i<=k;++i){
            if(hc/dm>=hm/dc)rsg23=true;
            hc+=a;dc-=w;
        }
        if(rsg23)printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

by 沉石鱼惊旋 @ 2022-02-01 14:25:22

@realMatrixCascade dalao您加分 or 扣分了吗?蒟蒻我-34,心疼我的分数


by wssbi @ 2022-02-01 14:30:09

过的代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define reg register
#define Int reg int
#define Char reg char
#define Bool reg bool
#define Ll reg ll
#define F(i,l,r) for(Int i=l;i r;++i)
#define R(i,r,l) for(Int i=r;i l;--i)
#define FF(i,a,b,c) for(Int i=a;b;i=c)
#define put printf
#define endl putchar('\n')
const int inf=0x3f3f3f3f;
const ll lnf=0x3f3f3f3f3f3f3f3f;
template<class T=int>inline T read(){
    reg T x=0;Char c=getchar();
    while(!isdigit(c)) c=getchar();
    while(isdigit(c)) x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x;
} 
template<class T=int>inline T readn(){
    reg T x=0;Bool b=0;Char c=getchar();
    while(!isdigit(c)) b|=c=='-',c=getchar();
    while(isdigit(c)) x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return b?-x:x;
}
inline char readc(){
    Char c=getchar();
    while(isspace(c)) c=getchar();
    return c;
}
namespace{
    int T;
    ll h,d,hm,dm,k,w,a;
    void work(){
        T=read();
        while(T--){
            h=read<ll>();
            d=read<ll>();
            hm=read<ll>();
            dm=read<ll>();
            k=read<ll>();
            w=read<ll>();
            a=read<ll>();
            F(i,0,<=k){
                Ll x=ceil(hm*1.0/(d+i*w));
                Ll y=ceil((h+(k-i)*a)*1.0/dm);
                if(x<=y){
                    puts("YES");
                    goto bed;
                }
            }
            puts("NO");
            bed:;
        }

    }
}
signed main(){work();return 0;}

by Hollis_Yang @ 2022-02-01 14:32:58

我也贴一个AC代码qwq

#include<bits/stdc++.h>
#define hor(i,l,r) for(int i=l;i<=r;i++)
#define lor(i,l,r) for(int i=l;i>=r;i--)
#define ll long long
#define un unsigned
#define pb push_back
#define mp makepair
using namespace std;
template<typename T> inline void read(T &x){
    x=0;char c=getchar();bool flag=false;
    while(!isdigit(c)){if(c=='-')flag=true;c=getchar();}
    while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}
    if(flag)x=-x;
}
template<typename T> inline void write(T x){
    short st[30],tp=0;
    if(x<0) putchar('-'),x=-x;
    do st[++tp]=x%10,x/=10; while(x);
    while(tp) putchar('0'|st[tp--]);
}
#define wr write
#define rd read
#define int long long
#define pk putchar(' ')
#define ed puts("")
signed main(){
    int t,hc,dc,hm,dm,k,w,a;
    rd(t);
    while(t--){
        rd(hc),rd(dc),rd(hm),rd(dm),rd(k),rd(w),rd(a);
        bool flag=true;
        for(int i=0;i<=k;i++){
            int nowhc=hc+i*a,nowdc=dc+(k-i)*w;
            //wr(nowhc),pk,wr(nowdc),ed;
            int jss=ceil((double)((hm*1.0)/nowdc)),gws=ceil(double((nowhc*1.0)/dm));
            //wr(jss),pk,wr(gws),ed;
            if(jss<=gws){
                flag=false;
                break;
            }
        }
        if(!flag) puts("YES");
        else puts("NO");
    }
}

by 沉石鱼惊旋 @ 2022-02-01 14:34:24

咱能不能不贴代码了,本帖两个重点:1,看看多少幸运儿被hack。2,帮lz检查下代码,为什么错


by 已注销HDyr!RS @ 2022-02-01 14:39:40

@chenyuxuan__2009 开 __int128 试试?


by Miraik @ 2022-02-01 14:43:17

@chenyuxuan__2009

这玩意乘起来不是爆longlong了吗,老老实实把两个轮数算出来比大小不就行了


| 下一页