4/14 二分答案+数学

Posted 钟钟终

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4/14 二分答案+数学相关的知识,希望对你有一定的参考价值。

P3853 [TJOI2007]路标设置
二分答案。放路标时两个路标间为了满足给定的空旷系数要放多个路标,当能整除时得减去一个,因为系数正好为x。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+5;
const int inf=0x3f3f3f3f;
int len,n,k,l,r,a[N],ans;
bool check(int x)

    int num=0;
    for(int i=2;i<=n;i++)
    
        if(a[i]-a[i-1]>x)
        
            num+=(a[i]-a[i-1])/x;
            if((a[i]-a[i-1])%x==0)
                num--;
        
        if(num>k)
            return 0;
    
    return 1;

signed main()

    cin>>len>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1);
    l=0,r=len;
    while(l<=r)
    
        int mid=(l+r)/2;
        if(check(mid))
            ans=mid,r=mid-1;
        else
            l=mid+1;
    
    cout<<ans<<endl;
	return 0;



P5431 【模板】乘法逆元 2
并不好用线性求逆元,范围太大了。
而且开卡在了550ms以内,总会报re。用上快读和计算k的幂使用优化。

#include<bits/stdc++.h>
#define int long long
using namespace std;
char ch;
inline void read(int &x)
	x=0;
	for(ch=getchar();ch<'0'||ch>'9';ch=getchar());
	for(;ch>='0'&&ch<='9';ch=getchar())
		x=(x<<3)+(x<<1)+(ch&15);

const int N=5e6+5;
const int mod=1e9+7;
const int inf=0x3f3f3f3f;
int n,p,k,inv[N],a[N],c[N],kk[N];
int fastpow(int x,int y)

    int res=1;
    while(y)
    
        if(y&1)
            res*=x,res%=p;
        x*=x,x%=p;
        y>>=1;
    
    return res%p;

int get_inv(int x)

    return fastpow(x,p-2);

signed main()

    read(n),read(p),read(k);
    //inv[1]=1;
    //for(int i=2;i<=N;i++)
    //    inv[i]=(p-p/i)*inv[p%i]%p;
    c[0]=1;
    int ans=0;
    for(int i=1;i<=n;i++)
    
        read(a[i]);
        c[i]=c[i-1]*a[i]%p;
    
    inv[n]=get_inv(c[n]);
    for(int i=n-1;i>=1;i--)
        inv[i]=inv[i+1]*a[i+1]%p;
    int inv_k=get_inv(k),kk=fastpow(k,n);
    for(int i=n;i>=1;i--)
    
        ans=(ans+inv[i]*c[i-1]%p*kk%p)%p;
        kk=kk*inv_k%p;
    
    cout<<ans<<endl;
	return 0;


以上是关于4/14 二分答案+数学的主要内容,如果未能解决你的问题,请参考以下文章

P3853 [TJOI2007]路标设置

luogu P3853 [TJOI2007]路标设置 |二分

P2658 汽车拉力比赛

洛谷——P2658 汽车拉力比赛

一元三次方程求解(数学二分)

CH0805 前缀和维护奇偶 二分答案