1
题意 有n根面条,端点相连,求圈个数 的期望
:) 一开始做的时候,觉得和排列组合有关,可是没能凑出样例来…
分析
加一根面条,端点有2n-1个点可以连 总体可以分为两种情况
情况一 自己成为一个新的圈 这个概率为 1/(2n-1);
情况二 和原来的组成一个圈 圈的个数没有增加 这个概率为 (2n-2)/(2n-1);
#include<bits/stdc++.h>
using namespace std;
double e[1000001];
int main()
{
int t,i,n;
e[1]=1.000000;
for(i=2;i<=1000000;i++)
e[i]=(e[i-1]+1.0)/(2*i-1)+e[i-1]*(2*i-2)/(2*i-1);
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%lf\n",e[n]);
}
return 0;
}
2
题意:有n个位置,每个位置上有一个符号,代表向左或者向右,问你当小球在那些位置的时候会越界(小于1或者大于n)
分析:
观察发现,左边的连续的<和右边的连续的>都会掉下去。
:) 没有分析出来,一开始还理解错了题意
#include<bits/stdc++.h>
using namespace std;
int a[200002];
int main()
{
int n;
string s;
while(cin>>n>>s)
{
int ans=0;
for(int i=0;i<n;i++)
if(s[i]=='<')
ans++;
else
break;
for(int i=n-1;i>=0;i--)
if(s[i]=='>')
ans++;
else
break;
cout<<ans<<endl;
}
return 0;
}
3
题意 序列是这样的 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, and then cycle repeats, thus after the second 1 again goes 0.
给出n个连续天数,判断接下来的一天,这个数是up还是down
分析 可能是 情况没有分析全 所以没有过吧
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn =1e5+8;
int sz[maxn];
int main()
{
ll n;
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>sz[i];
if(n==1)
{
if(sz[n-1]==15) cout<<"DOWN"<<endl;
else if(sz[n-1]==0) cout<<"UP"<<endl;
else cout<<"-1"<<endl;
}
else
{
if(sz[n-1]-sz[n-2]>0)
{
if(sz[n-1]==15) cout<<"DOWN"<<endl;
else cout<<"UP"<<endl;
}
else
{
if(sz[n-1]==0) cout<<"UP"<<endl;
else cout<<"DOWN"<<endl;
}
}
}
return 0;
}