水题
来源:互联网 发布:js点击按钮弹出图片 编辑:程序博客网 时间:2024/05/01 08:09
hdu 5645 DZY Loves Balls
他有nn个球,装进一个大盒子里。每个球上面都写着一个整数。
有一天他打算从盒子中挑两个球出来。他先均匀随机地从盒子中挑出一个球,记为AA。他不把AA放回盒子,然后再从盒子中均匀随机地挑出一个球,记为BB。
如果AA上的数字严格大于BB上的数字,那么他就会感到愉悦。
现在告诉你每个球上的数字,请你求出他感到愉悦的概率是多少。
他有nn个球,装进一个大盒子里。每个球上面都写着一个整数。
有一天他打算从盒子中挑两个球出来。他先均匀随机地从盒子中挑出一个球,记为AA。他不把AA放回盒子,然后再从盒子中均匀随机地挑出一个球,记为BB。
如果AA上的数字严格大于BB上的数字,那么他就会感到愉悦。
现在告诉你每个球上的数字,请你求出他感到愉悦的概率是多少。
所有的情况是(n-1)*n, 然后模拟比她大的情况就好咯
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int a[305],t,n;
while(cin>>t)
{
while(t--)
{
cin>>n;
int count=0;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
if(a[j]>a[i])count++;
}
printf("%.6lf\n",(double)count/(double)(n*(n-1)));
}
}
return 0;
}
#include<cstdio>
using namespace std;
int main()
{
int a[305],t,n;
while(cin>>t)
{
while(t--)
{
cin>>n;
int count=0;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
if(a[j]>a[i])count++;
}
printf("%.6lf\n",(double)count/(double)(n*(n-1)));
}
}
return 0;
}
HDU5670Machine
有一个机器,它有 m (2\leq m\leq 30)m(2≤m≤30) 个彩灯和一个按钮。每按下按钮时,最右边的彩灯会发生一次变换。变换为:
1. 如果当前状态为红色,它将变成绿色;
2.如果当前状态为绿色,它将变成蓝色;
3.如果当前状态为蓝色,它将变成红色,并且它左边的彩灯(如果存在)也会发生一次变换。
初始状态下所有的灯都是红色的。
询问按下按钮 n (1\leq n< {2}^{63})n(1≤n<2?63??) 次以后各个彩灯的颜色。
有一个机器,它有 m (2\leq m\leq 30)m(2≤m≤30) 个彩灯和一个按钮。每按下按钮时,最右边的彩灯会发生一次变换。变换为:
1. 如果当前状态为红色,它将变成绿色;
2.如果当前状态为绿色,它将变成蓝色;
3.如果当前状态为蓝色,它将变成红色,并且它左边的彩灯(如果存在)也会发生一次变换。
初始状态下所有的灯都是红色的。
询问按下按钮 n (1\leq n< {2}^{63})n(1≤n<2?63??) 次以后各个彩灯的颜色。
这个题一开始又看错了。。。。以后一定要好好读题
第二个灯 每三次变一次 第三个灯就每九次变一次了
所以比如算完上一个 应该先除三再取余
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
long long a[31],m,n,t;
while(cin>>t)
{
while(t--)
{cin>>m>>n;
memset(a,0,sizeof(a));
for(int i=0;i<m;i++)
{
a[i]=n%3;
n=n/3;
}
for(int i=m-1;i>=0;i--)
{
if(a[i]==0)cout<<'R';
else if(a[i]==1)cout<<'G';
else cout<<'B';
}
cout<<endl;
}
}
return 0;
}
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
long long a[31],m,n,t;
while(cin>>t)
{
while(t--)
{cin>>m>>n;
memset(a,0,sizeof(a));
for(int i=0;i<m;i++)
{
a[i]=n%3;
n=n/3;
}
for(int i=m-1;i>=0;i--)
{
if(a[i]==0)cout<<'R';
else if(a[i]==1)cout<<'G';
else cout<<'B';
}
cout<<endl;
}
}
return 0;
}
0 0