CSDN竞赛第28期题解

Posted 酷酷的Herio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSDN竞赛第28期题解相关的知识,希望对你有一定的参考价值。

CSDN竞赛第28期题解

1、题目名称:小Q的鲜榨柠檬汁

团建活动是大家所想要的。 小Q给大家准备了鲜橙汁。 现在有n个朋友买回了k瓶饮料,每瓶有l毫升的饮料,同时还买回
了c个柠檬, 每个柠檬可以切成d片,p克盐。 已知每个朋友需要nl毫升的饮料,一片柠檬,以及np克盐。 小Q想知道每
个朋友最少可以喝多少杯饮料。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
const int hashmod[4] = 402653189,805306457,1610612741,998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define db double
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define VI vector<int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define ios ios::sync_with_stdio(false),cin.tie(nullptr)
void Print(int *a,int n)
for(int i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\\n",a[n]);

template <typename T> //x=max(x,y) x=min(x,y)
void cmx(T &x,T y)
if(x<y) x=y;

template <typename T>
void cmn(T &x,T y)
if(x>y) x=y;

int main()
ll n,k,l,c,d,p,nl,np;cin>>n>>k>>l>>c>>d>>p>>nl>>np;
ll asn = min(c*d/n,p/np/n,k*l/nl/n);
cout<<asn;
return 0;

2、题目名称:三而竭

一鼓作气再而衰三而竭。 小艺总是喜欢把任务分开做。 小艺接到一个任务,任务的总任务量是n。 第一天小艺能完成x份
任务。 第二天能完成x/k。 。。。 第t天能完成x/(k^(t-1))。 小艺想知道自己第一天至少完成多少才能完成最后的任务。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
const int hashmod[4] = 402653189,805306457,1610612741,998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define db double
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define VI vector<int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define IOS ios::sync_with_stdio(false),cin.tie(nullptr)
void Print(int *a,int n)
for(int i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\\n",a[n]);

template <typename T> //x=max(x,y) x=min(x,y)
void cmx(T &x,T y)
if(x<y) x=y;

template <typename T>
void cmn(T &x,T y)
if(x>y) x=y;

ll n,k;
bool ck(ll x)
ll s = 0;
for(int i=1;i<=1e5;i++)
s+=x;
x/=k;
if(s>=n) return true;

return false;

int main()
cin>>n>>k;
ll l=1,r=n,ans=0;
while(l<=r)
ll m =l+r>>1;
if(ck(m)) ans=m,r=m-1;
else l=m+1;

cout<<ans;
return 0;

3、题目名称:隧道逃生

小海豚喜欢打游戏,现在它在操纵游戏人物小C逃脱废弃的隧道,逃生装置在小C的前方 X 米远的位置。但是游戏机只有
两个按钮:前进和后退,按前进,小C会前进 m 米,按后退,小C会后退 n 米。 小海豚必须设法把小C送到逃生装置上,
方能逃离隧道,请你帮帮小海豚,告诉它至少要操作多少次,才能通关。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
const int hashmod[4] = 402653189,805306457,1610612741,998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define db double
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define VI vector<int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define IOS ios::sync_with_stdio(false),cin.tie(nullptr)
void Print(int *a,int n)
for(int i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\\n",a[n]);

template <typename T> //x=max(x,y) x=min(x,y)
void cmx(T &x,T y)
if(x<y) x=y;

template <typename T>
void cmn(T &x,T y)
if(x>y) x=y;

unordered_map<int,int>mp;
ll x,m,n;
void dfs(int p,int v)
if(p<0) return;
if(p>x+10*n) return;
if(mp.count(p)&&mp[p]<=v) return;
mp[p] = v;
dfs(p+m,v+1);
dfs(p-n,v+1);

int main()
cin>>x>>m>>n;
dfs(0,0);
cout<<mp[x];
return 0;

4、题目名称:收件邮箱

已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用
的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
const int hashmod[4] = 402653189,805306457,1610612741,998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define db double
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define VI vector<int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define IOS ios::sync_with_stdio(false),cin.tie(nullptr)
void Print(int *a,int n)
for(int i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\\n",a[n]);

template <typename T> //x=max(x,y) x=min(x,y)
void cmx(T &x,T y)
if(x<y) x=y;

template <typename T>
void cmn(T &x,T y)
if(x>y) x=y;

int n ;
string s;
bool ck(int i)
if(i+2<n && s[i]=='d'&&s[i+1]=='o'&&s[i+2]=='t') return true;
return false;

bool ck2(int i)
if(i+1<n && s[i]=='a'&&s[i+1]=='t') return true;
return false;

int main()
cin>>s;
n =s.size();
string t;
int ok = 0;
for(int i=0;i<n;i++)
if(i==0||i==n-1)
t+=s[i];

else if(ck(i)&&i!=n-3)
t+=".";
i+=2;

else if(!ok && ck2(i) && i!=n-2)
t+="@";
i++;
ok = 1;

else t+=s[i];

cout<<t;
return 0;

以上是关于CSDN竞赛第28期题解的主要内容,如果未能解决你的问题,请参考以下文章

CSDN竞赛第27期题解

CSDN竞赛第27期题解

CSDN竞赛第33期题解

CSDN竞赛第33期题解

CSDN 编程竞赛第15期题解

CSDN 编程竞赛第15期题解