当前位置: 代码迷 >> 综合 >> 2050 Programming Competition - Warmup
  详细解决方案

2050 Programming Competition - Warmup

热度:79   发布时间:2023-12-26 09:41:29.0

1001 赶火车

Problem Description

小伙伴们愉快地结束了暑假wannafly训练营的生活,决定返回学校,早上小伙伴们要赶到高铁站,高铁将在y分钟后停止检票,但他们发现了一件尴尬的事情——他们不认路。

这个城市的道路是非常诡异的,在他们面前有n+m条路,其中n条路是正确的,如果走正确的路,将会在ai分钟后走到高铁站,另外m条路是不正确的,如果走不正确的路,将会在bi分钟后回到起点。

小伙伴们只能随机选择一条路走,但他们记性很差,即使走过一条不正确的路,他们也可能会再次选择这条路。
小伙伴们是非常谨慎的人,他们想要计算到达高铁站所需时间的期望EX,如果EX≤y,那么就出发,否则就退票。

Input

第一行是一个整数T,表示有T组数据,接下来T组数据,每组数据包含三行:
n,m,y
a1,a2,...,an
b1,b2,...,bm
含义如题中所述
1≤T≤100,1≤n,m≤10,1≤ai,bi,y≤1000

Output

对于每组数据,如果要出发,那么就输出“Go”,否则输出“Wait”,不含引号。

Sample Input

2

4 7 2

1 1 1 1 1 1 1 1 1 1 1

7 4 2

1 1 1 1 1 1 1 1 1 1 1

Sample Output

Wait

Go

【分析】

首先,期望公式:

      x的期望 = y1的期望 * x到y1的概率 + y2的期望 * x到y2的概率 + ... + yn的期望*x到yn的概率 + x走一步的期望

 

我们设  起点是A,终点是B; 达到A点的期望是a,到达B点的期望是b;

n条正确的路时间总和为sum1,m条错误的路时间总和为sum2;

期望公式类比到该题,就是:

     起点到终点的期望 = A的期望 × A到终点的期望 + B的期望 × B到终点的期望 +到下一个状态的期望

因为B已经是终点,所以B到B是不需要代价的,所以期望是0,该项不用考虑

那么从A→B,有

移项化简,得

//ppppps:真的是理解了好久。。好难理解啊   概率dp....阿西巴

【代码】

#include<bits/stdc++.h>
using namespace std;const int maxn=15;
int a[15],b[15];
int n,m,y;int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&y);int sum1=0,sum2=0;for(int i=0;i<n;++i){scanf("%d",&a[i]);sum1+=a[i];}for(int i=0;i<m;++i){scanf("%d",&b[i]);sum2+=b[i];}double sum=0;sum=(sum1+sum2)*1.0/n;if(sum<=y)puts("Go");else puts("Wait");}}

1002 美丽度

Problem Description

街道上依次坐落着n个景点,每个景点都有一个美丽度a[i]。
定义[l,r]之间景点的美丽度为(r-l+1)*a[l]+(r-l)*a[l+1]+...+2*a[r-1]+1*a[r]

现在我们想要知道对于所有的子区间,景点的美丽度和为多少。

Input

第一行输入一个整数n(1<n<=1000000),
第二行输入n个整数。
0<=ai<=1e9

Output

输出所有区间的美丽度和(由于输出结果太大,答案取模1e9+7)。

Sample Input

5

1 2 3 4 5

Sample Output

182

先附别的博主的链接:https://blog.csdn.net/youth666/article/details/89220214

1004 定理证明

Problem Description

现在我们有n个定理,并且这n个定理是等价的,也就是说从任意一个定理出发,都可以推出其他所有的定理。

例如
定理1:有上界的实数集合必有上确界
定理2:有界实数列必有收敛子列
定理3:单调有界的实数列一定收敛

一共存在定理1→定理2、定理2→定理1、定理1→定理3、定理3→定理1、定理2→定理3、定理3→定理2这六种推导关系,但很显然有些推导是冗余的,例如,如果已经证明了定理1→定理2、定理2→定理3,那么定理1→定理3是显然成立的,证明定理1→定理3就是多余的。

请问我们最多可以按顺序写出多少个推导关系,使得其中任意一个推导关系和前面的结合起来不是多余的

Input

第一行是一个整数T,表示有T组数据,接下来T组数据,每组数据包含一个整数n表示定理的个数。
1≤T≤100,1≤n≤1000

Output

对于每组数据,输出答案除以 10^9+7 的余数。

Sample Input

3 1 2 3

Sample Output

0 2 5

Hint

证明定理1→定理2、定理2→定理3,那么定理1→定理3是冗余的

证明定理1→定理2、定理1→定理3,那么定理2→定理3不是冗余的

【分析】其实我不是很懂啦  但是大佬推出公式是: 

据说是 按顺序给出 一共有 种连接方式,然后去掉一种会造成冗余的所以 -1...?

待我再理解理解思考思考... 

  相关解决方案