文章

2

粉丝

0

获赞

3

访问

150

头像
P1922 k小数 答疑提问:
P1922 复旦大学2023年机试题
发布于2025年12月27日 13:09
阅读数 45

测试点答案有问题吗,一个值如果多次出现且恰好是k小数,答案就不太对;

#include<bits/stdc++.h>
#define ll long long
#define ing long long
#define endl "\n"
#define mod 998244353
const int N = 55*55;
using namespace std;
int n,k;
int t;
int a1,b1,c1,d1,a2,b2,c2,d2;
int get(int x,int y)
{
	long double tmp = (1.0)*b1*sin(c1*x+d1);
	tmp+=(1.0)*b2*sin(c2*y+d2);
	tmp+=a1*x + a2*y;
	tmp*=1.0*t;
	int res=tmp;
	return res;
}
bool che(int x)
{
	//小于等于x的cnt>=k
	int cnt=0;
	//cout<<x<<endl;
	for(int i=1;i<=n;i++)
	{
		int l=1,r=n;
		while(l<r)
		{
			int mid=(l+r+1)/2;
			int now = get(i,mid);
			if(now<=x)l=mid;
			else r=mid-1;
		}
		if(get(i,l)<=x)
		{
			//cout<<"*"<<l<<endl;
			cnt+=l;
		}
	}
	cout<<cnt<<endl;
	if(cnt>=k)return 1;
	return 0;
}
void sol()
{
	
	cin>>n>>k>>t;
	cin>>a1>>b1>>c1>>d1;
	cin>>a2>>b2>>c2>>d2;

	
	
//	int l = get(1,...
登录查看完整内容


登录后发布评论

1 条评论
admin
2025年12月27日 22:36

感谢反馈,check之后已修正~

赞(0)
回复给: