文章
2
粉丝
0
获赞
3
访问
150
测试点答案有问题吗,一个值如果多次出现且恰好是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,...
登录后发布评论
感谢反馈,check之后已修正~