模拟赛1030d2


【问题描述】
一张长度为N的纸带, 我们可以从左至右编号为0 − N( 纸带最左端标号为
0)。 现在有M次操作, 每次将纸带沿着某个位置进行折叠, 问所有操作之后纸带
的长度是多少。
【输入格式】
第一行两个数字N, M如题意所述。
接下来一行M个整数代表每次折叠的位置。
【输出格式】
一行一个整数代表答案。
【样例输入】
5 2
3 5
【样例输出】
2
【样例解释】
树上有只鸟。
【数据规模与约定】
对于60%的数据, N, M ≤ 3000。
对于100%的数据, N ≤ 10^18, M ≤ 3000。

/*
  刚开始用并查集写的60%的数据,原因是更新时不管有没有用的元素都更新了,其实有用的最多 
  3000个,完全可以离线做,然后只更新这3000个。 
*/
#include<cstdio>
#include<iostream>
#define ll long long
#define N 3010
using namespace std;
ll a[N],n,m;
ll read()
{
    ll num=0,flag=1;char c=getchar();
    while(c<'0'||c>'9'){if(c=='-')flag=-1;c=getchar();}
    while(c>='0'&&c<='9'){num=num*10+c-'0';c=getchar();}
    return num*flag;
}
int main()
{
    freopen("he.in","r",stdin);
    freopen("he.out","w",stdout);
    m=read();n=read();
    for(ll i=1;i<=n;i++)
      a[i]=read();
    ll l=0,r=m;
    for(ll i=1;i<=n;i++)
    {
        ll mid=a[i];
        if(mid<=(l+r)/2)
        {
            l=mid;
            for(ll j=i+1;j<=n;j++)
              if(a[j]<mid)a[j]=mid+mid-a[j];
        }
        else
        {
            r=mid;
            for(ll j=i+1;j<=n;j++)
              if(a[j]>mid)a[j]=mid+mid-a[j];
        }
    }
    cout<<r-l;
    return 0;
}

 


【问题描述】
给你M, S, L, R, 求满足L ≤ (S × x) mod M ≤ R最小的正整数x。

【输入格式】
第一行一个数T代表数据组数。
接下来T行每行四个数代表该组数据的M, S, L, R。
【输出格式】
对于每组数据, 输出一行代表答案。 如果不存在解, 输出“ −1”。
【样例输入】
1
5 4 2 3
【 样例输出】
2
【 样例解释】
叫南小鸟。
【数据规模与约定】
对于30%的数据, 保证有解且答案不超过10^6。
对于另外20%的数据, L = R。
对于100%的数据, 1 ≤ T ≤ 100,0 ≤ M, S, L,R ≤ 10^9。

                                                                                                                                                                      

【问题描述】
N个人坐成一圈, 其中第K个人拿着一个球。 每次每个人会以一定的概率向
左边的人和右边的人传球。 当所有人都拿到过球之后, 最后一个拿到球的人即为
胜者。 求第N个人获胜的概率。( 所有人按照编号逆时针坐成一圈)
【输入格式】
第一行一个数T代表数据组数。
对于每组数据, 第一行两个整数N, K如题意所述。
接下来每行一个实数p代表该人将球传给右边的人的概率。
【输出格式】
对于每组数据, 一行一个实数代表答案, 保留9位小数。
【样例输入】
1
5 1
0.10
0.20
0.30
0.40
0.50
【 样例输出】
0.007692308
【 样例解释】
然后鸟是我的。
【数据规模与约定】
对于20%的数据, N ≤ 3。
对于70%的数据, T, N ≤ 100。
对于100%的数据, T ≤ 10000,1 ≤ N ≤ 100

 

posted @ 2016-11-06 20:12  karles~  阅读(278)  评论(0编辑  收藏  举报