日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題干:
?

因?yàn)楝F(xiàn)在的新生太強(qiáng)了,都學(xué)會(huì)了“dp”,所以就有了這樣一個(gè)“dp”題,雙11時(shí)Gugugu有(x,x+1,x+2....y-1,y)元的抵用券無(wú)數(shù)張,但是Gugugu有強(qiáng)迫癥所以他希望他使用抵扣券正好能夠抵扣k元,這樣他就能安心的買下這件商品,但是他卻不會(huì)計(jì)算所以希望你們告訴他能不能一種方法使抵用券正好抵扣k元。

輸入描述:

?第一行輸入t代表有t組數(shù)據(jù),第二行開(kāi)始每行三個(gè)數(shù)k,x,y代表需要抵扣k元,x,y代表?yè)碛械钟萌淖钚∶嬷岛妥畲竺嬷怠?#xff08;1<=t<=200)(1<=k,x,y<109)(x<=y)

輸出描述:

輸出"Y"代表示能正好抵扣,輸出"N"代表不能正好抵扣

示例1

輸入

復(fù)制

2 7 2 4 6 4 5

輸出

復(fù)制

Y N

解題報(bào)告:

?

AC代碼:(一個(gè)AC代碼,但是不加那些剪枝會(huì)T)

#include<bits/stdc++.h> using namespace std; long long k,x,y; int main(){int T ;scanf("%d",&T);while(T--){scanf("%lld%lld%lld",&k,&x,&y);if(k<x) printf("N\n");else if(k>=x&&k<=y) printf("Y\n");else{int flag=0;for(int i=2;i<=10000000;i++){if(x*i<=k&&k<=y*i){printf("Y\n");flag=1;break;} }if(!flag)printf("N\n");}} }

AC代碼2:(這樣也可以500ms左右AC,其實(shí)可能是因?yàn)閿?shù)據(jù)水了,我把枚舉上界改成1e4也AC了,等等好像1e3也AC了,確定是數(shù)據(jù)水了)

#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX = 2e5 + 5; ll k,x,y; int main() {int t;cin>>t;while(t--) {scanf("%lld%lld%lld",&k,&x,&y);int ff=0;for(ll i = 1; i<=(ll)1e7; i++) {if(i*x <=k && i*y >=k) {ff=1;puts("Y");break;}}if(ff==0) puts("N");}return 0 ;}

正解:

#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> PI; const int maxn = 1e5+5; const ULL mod = 1e9+7; const LL inf = 1e18; int main() {int T; scanf( "%d", &T );while( T-- ){int k,x,y; scanf( "%d%d%d", &k, &x, &y );if( k<x ) printf( "N\n" );else if( k>=x&&k<=y||k%x==0 ) printf( "Y\n" );else{int pp = k/x;int p = k%x;if( p%pp==0 ) p /= pp;else p = p/pp+1;if( p<=y-x ) printf( "Y\n" );else printf( "N\n" );}}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。