思维数学+treap——icpc 2019 nwerc

Posted zsben991126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思维数学+treap——icpc 2019 nwerc相关的知识,希望对你有一定的参考价值。

要求构造一棵treap,其结点的(key,priority)要求为(x,sinx),且这棵treap的高度是n,所有x都为整数

根据treap的特性,将问题转化为构造一个pair<x,sinx>序列,要求x递增,sinx也递增

当sinx很小时,sinx=x,即接近线性,那么我们找到一个能满足sinx1=x1的整数点x1,(x1,sinx1)作为序列第一个点

再把(2x1,sin2x1)作为序列第二个点...依次类推,就可以构造出这个序列

问题在于x1要多小才能满足这个要求?

  枚举[1..5e4]范围的sinx,把最小的x找到就行,

  5e4*2e4<=1e9,x满足int范围

#include <bits/stdc++.h>
#define P pair<double,int>
using namespace std;

int main(){
    int n;
    cin>>n;
    vector<P> v; vector<int> vv;
    for(int i=1;i<=50000;i++)
        if(sin(i)>0) v.push_back(P(sin(i),i));
    
    sort(v.begin(),v.end());
    for(int i=-25000;i<=25000;i++){
        vv.push_back(i*v[0].second);
    
    sort(vv.begin(),vv.end());
    for(int i=0;i<n;i++) printf("%d
",vv[i]);
}

 

以上是关于思维数学+treap——icpc 2019 nwerc的主要内容,如果未能解决你的问题,请参考以下文章

2019 ICPC 南昌 K. Tree(树上启发式合并,平衡树 treap)

2019 ICPC 南昌 K. Tree(树上启发式合并,平衡树 treap)

ICPC2019南昌区域赛

2019icpc银川网络赛-A Maximum(思维)

思维模拟+暴力——icpc nwrrc 2019 K

思维模拟+暴力——icpc nwrrc 2019 K