Hang electric multi-school (b) 2019.7.24-- summer camp

【】 6591 HDU

UNSOLVED

 


【】 6592 HDU

UNSOLVED

 

 


【】 6593 HDU

UNSOLVED

 

 

 

 


【】 6594 HDU

UNSOLVED

 

 

 

 


 

 

【】 6595 HDU

SOLED

Expected probability, be a purely mathematical problem

 

 

#include<cstdio>
#include<iostream>
#define ll long long 
const int MAXN = 3001;
const int mod  = 998244353;
ll ans[MAXN];
ll qpower(ll a, ll x)
{
    ll res = 1;
    ll down = a;
    while (x)
    {
        if (x & 1)
        {
            res = (res*down) % mod;
        }
        down = (down*down) % mod;
        x = x >> 1;
    }
    return res;
}
void init()
{
    for (int i = 1; i <MAXN; i++)
    {
        ans[i] = ((i * (i - 1))%mod)*qpower(3, mod - 2);
        ans[i] %= mod;
        ans[i] = (ans[i] + ans[i - 1]) % mod;
    }
    for (int i = 1; i < MAXN; i++)
    {
        ans[i] = (ans[i] * qpower(i, mod - 2))%mod;
    }
}
signed main()
{
    int n;
    init();
    while (~scanf("%d",&n))
    {
        printf("%lld\n", ans[n]);
    }
    return 0;
}
View Code

 


【】 6596 HDU

UNSOLVED

 

 

 


【】 6597 HDU

UNSOLVED

Game inequality

 

 

 


【】 6598 HDU

UNSOLVED

FIG flow network built +

 

 

 

 


【】 6599 HDU

  Palindrome

UNSOLVED

 

 

 


【】 6600 HDU

UNSOLVED

 

 

 

 

 


【】 6601 HDU

SOLED

[Title] effect

  Given a sequence of length n is an integer, and m times a given query, each valid interrogation interval can be an integer triangle consisting maximum length

[Thinking]

 Basically bare Chairman tree, find the section's No. 1, the second largest, third largest, and then calculate the legitimacy, if not illegal, find the second largest, third largest, the fourth largest, and so on

 Because the long side of the triangle is a legal case Fibonacci number, so the number will not find more than 44 times lower time

[Knowledge]: Chairman of the tree

 

#include<cstdio>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
const int MAXN = 200010;
const int MAXM = 200010;
int lsan[MAXN], a[MAXN],T[MAXN];
int sum[21*MAXN], ls[21 * MAXN], rs[21 * MAXN];
int n, m;
int cnt;
int build(int l, int r)
{
    int root=++cnt;
    sum[root] = 0;
    int mid = (l + r) >> 1;
    if (l < r)
    {
        ls[root] = build(l, mid);
        rs[root] = build(mid + 1, r);
    }
    return root;
}
int update(int pre, int l, int r,int x)
{
    int root=++cnt;
    sum[root] = sum[pre] + 1;
    ls[root] = ls[pre];
    rs[root] = rs[pre];
    int mid = (l + r) >> 1;
    if (l < r)
    {
        if (x <= mid)
            ls[root] = update(ls[pre], l, mid, x);
        else
            rs[root] = update(rs[pre], mid + 1, r,x);
    }
    return root;
}
int query(int l,int r,int x, int y, int num)
{
    if (l >= r)
        return l;
    int t = sum[rs[y]] - sum[rs[x]];
    int mid = (l + r) >> 1;
    if (t>=num)
        return query(mid + 1, r, rs[x], rs[y], num);
    else
        return query(l, mid, ls[x], ls[y], num-t);
}
int main()
{
    while (~scanf("%d%d", &n, &m))
    {
        cnt = 0;
        for (int i = 1; i <= n; i++)
        {
            scanf("%d", &a[i]);
            lsan[i] = a[i];
        }
        sort(lsan + 1, lsan + 1 + n);
        int maxn = unique(lsan + 1, lsan + 1 + n) - lsan - 1;
        T[0] = build(1, maxn);
        for (int i = 1; i <= n; i++)
        {
            int t = lower_bound(lsan + 1, lsan + 1 + maxn, a[i]) - lsan;
            T[i] = update(T[i - 1], 1, maxn, t);
        }
        for (int i = 1; i <= m; i++)
        {
            int x, y, k;
            scanf("%d%d", &x, &y);
            int cal = 0;
            ll l1=0, l2=0, l3=0;
            cal = 0;
            while ((l1 + l2 <= l3 || l1 + l3 <= l2 ||l2 + l3 <= l1) &&cal+3<=y+1-x)
            {
                l1 = lsan[query(1, maxn, T[x - 1], T[y], ++cal)];
                l2 = lsan[query(1, maxn, T[x - 1], T[y], ++cal)];
                l3 = lsan[query(1, maxn, T[x - 1], T[y], ++cal)];
                cal -= 2;
            }
            if (l1 + l2 > l3 && l1 + l3 > l2 &&l2 + l3 > l1)
                printf("%lld\n", l1 + l2 + l3);
            else
                printf("-1\n");
        }
    }
    return 0;
}
View Code

【】 6602 HDU

UNSOLVED

Segment tree

 

 

 

 

 

 


 

 

 

 

 

UNSOLVED

Guess you like

Origin www.cnblogs.com/rentu/p/11241030.html