hdu 5645 DZY Loves Balls 他有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; } 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??) 次以后各个彩灯的颜色。 这个题一开始又看错了。。。。以后一定要好好读题 第二个灯 每三次变一次 第三个灯就每九次变一次了 所以比如算完上一个 应该先除三再取余 #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; }