一个小问题
查看原帖
一个小问题
686297
LegendaryGrandmaster楼主2023/8/16 20:07

这是赛时的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main()
{
	int n,m,x,y,k;
	cin>>n>>m>>x>>y>>k;
	int ans=(int)(n/x)*(int)(m/y);
	if(n%x==0)ans--;
	if(m%y==0)ans--;
	cout<<ans/k+1<<' '<<ans+1;
}

做题时的思路和题解差不多,但是代码纯属胡搞,最终还是胡搞过了

赛后看完题解之后略做了一些修改:

#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main()
{
	int n,m,x,y,k;
	cin>>n>>m>>x>>y>>k;
	int ans=(int)(n/x)*(int)(m/y)-1;
	if(n%x!=0)ans++;
	if(m%y!=0)ans++;
	cout<<ceil(1.0*ans/k)<<' '<<ans;
}

但是这个代码只有 5050 分,而改称下面这个代码却能 100100 分呢

#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main()
{
	int n,m,x,y,k;
	cin>>n>>m>>x>>y>>k;
	int ans=(int)(n/x)*(int)(m/y)-1;
	if(n%x!=0)ans++;
	if(m%y!=0)ans++;
	cout<<ans/k+(ans%k!=0)<<' '<<ans;
}

是 ceil 的问题吗?

2023/8/16 20:07
加载中...