A题 先求出来这个数是第几大  阶乘求概率p  然后计算获得胜率的概率 常规解法把所有情况考虑一遍(跳1次,2次,3次……)要用到组合数  数可能太大了会爆的行不通

我们观察发现它有递推性质,从第二大开始获胜概率为Q1=p(直接跳到第一大)从第三大开始获胜概率为Q2=p*Q1(先跳到第二大)+p(直接跳到第一大)以此类推Q3=Q2*p+Q1*p+p

Q4=Q3*p+Q2*p+Q1*p+p 但是我们按照上面的递推式计算Qn时复杂度为O(n*n) 我们再改进一下Q2=Q1*(1+p),Q3=Q2*(1+p) ,Q4=Q3*(1+p)这样复杂度就为 O(n) 了

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn = 2e2+;
const int maxm = 1e6+;
const int inf = 0x3f3f3f3f;
const double epx = 1e-;
typedef long long ll;
int a[maxn],b[maxn],c[maxn];
double f[maxm];
int main()
{
int t,n;
b[]=;
for(int i=;i<=;i++)
b[i]=b[i-]*i;
cin>>t;
while(t--)
{
cin>>n;
int cnt=;
while(n!=)
{
c[++cnt]=n%;
a[n%]++;
n/=;
}
reverse(c+,c+cnt+);
int sum=;
for(int i=;i<=cnt;i++)
{
for(int j=;j>=;j--)
{
if(a[j]>)
{
if(j>c[i])
sum+=b[cnt-i];
else if(j==c[i])
{
a[j]--;
break;
}
}
}
}
double p=1.0/b[cnt];
if(sum==)
f[]=;
else
{
f[sum-]=p;
for(int i=sum-; i>=; i--)
{
f[i]=f[i+]*p+f[i+];
}
}
printf("%.9lf\n",f[]);
}
}

B题 直接模拟 我写的是最暴力的那种。。。

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn= 2e2+;
const int maxm= 1e4+;
const int inf = 0x3f3f3f3f;
typedef long long ll;
int main()
{
int t,n,m;
while(cin>>t)
{
while(t--)
{
char a[maxn][maxn];
char ans[maxn];
cin>>n>>m;
char x,y;
for(int i=;i<=m;i++)
{
for(int j=;j<=*n;j++)
{
cin>>a[i][j];
}
}
for(int i=;i<*n;i=i+)
{
int cnt1=,cnt2=,cnt3=,cnt4=;
int flag=;
for(int j=;j<=m;j++)
{
if(a[j][i+]=='T')
{
ans[i/+]=a[j][i];
flag=;
break;
}
else
{
if(a[j][i]=='A')
cnt1++;
else if(a[j][i]=='B')
cnt2++;
else if(a[j][i]=='C')
cnt3++;
else if(a[j][i]=='D')
cnt4++;
}
}
if(flag==)
{
if(cnt1>&&cnt2>&&cnt3>)
ans[i/+]='D';
else if(cnt1>&&cnt2>&&cnt4>)
ans[i/+]='C';
else if(cnt1>&&cnt3>&&cnt4>)
ans[i/+]='B';
else if(cnt2>&&cnt3>&&cnt4>)
ans[i/+]='A';
else
ans[i/+]='?';
}
}
for(int i=;i<=n-;i++)
printf("%c ",ans[i]);
printf("%c\n",ans[n]);
}
}
}

F题 水~~

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn= 1e3+;
const int maxm= 1e4+;
const int inf = 0x3f3f3f3f;
typedef long long ll;
int n,m;
int a[maxn];
int main()
{
while(cin>>n)
{
int a,b;
while(n--)
{
cin>>a>>b;
if(a==b)
printf("Square\n");
else
printf("Rectangle\n");
}
}
}

I题 n比较小直接枚举组合情况  一位一位比较记录第一次和最后一次不同的位置,直接异或也可以

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn= 1e3+;
const int maxm= 1e4+;
const int inf = 0x3f3f3f3f;
typedef long long ll;
int n,m;
int a[maxn];
int main()
{
int t;
while(cin>>t)
{
while(t--)
{
cin>>n;
for(int i=; i<=n; i++)
cin>>a[i];
sort(a+,a++n);
int ans=-;
for(int i=; i<n; i++)
{
for(int j=i+; j<=n; j++)
{
int num=;
int tempi=a[i],tempj=a[j];
int cnt=;
while(tempi!=)
{
int ki=tempi&;
int kj=tempj&;
if(ki!=kj)
{
num++;
}
tempi=tempi>>;
tempj=tempj>>;
cnt++;
}
while(tempj!=)
{
if(tempj&)
{
num++;
}
tempj=tempj>>;
cnt++;
}
//printf("%d %d %d\n",a[i],a[j],num);
ans=max(ans,num);
}
}
cout<<ans<<endl;
}
}
}

codeforces Gym 100814 A、B、F、I的更多相关文章

  1. codeforces gym/100814 humming distance (二进制位数比较)

    Gym - 100814I I. Salem time limit per test 1 second memory limit per test 1024 megabytes input stand ...

  2. AT NEW F、AT END OF F注意事项

    1.F只能是内表的第一个字段 2.AT NEW F.AT END OF F使用F之后内表内容会变为* 解决出现*的办法: FIELD-SYMBOLS:<ITAB> LIKE  ITAB L ...

  3. <转>thinkphp的各种内部函数 D()、F()、S()、C()、L()、A()、I()详解

    D.F.S.C.L.A.I 他们都在functions.php这个文件家下面我分别说明一下他们的功能 D() 加载Model类M() 加载Model类 A() 加载Action类L() 获取语言定义C ...

  4. ThinkPHP内置函数详解D、F、S、C、L、A、I

    单字母函数D.F.S.C.L.A.I 他们都在ThinkPHP核心的ThinkPHP/Mode/Api/functions.php这个文件中定义. 下面我分别说明一下他们的功能: D() 加载Mode ...

  5. 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   C标准库里<ctype.h>中声明了一个函数: int isspace(int c); 该函数判断字符c是否 ...

  6. ORM之自关联、add、set方法、聚合函数、F、Q查询和事务

    一.外键自关联(一对多) 1.建表 # 评论表 class Comment(models.Model): id = models.AutoField(primary_key=True) content ...

  7. 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)

    摘要: 数据挖掘.机器学习和推荐系统中的评测指标—准确率(Precision).召回率(Recall).F值(F-Measure)简介. 引言: 在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型 ...

  8. 2、函数y=f(x)

    /* Note:Your choice is C IDE */ #include "stdio.h" /* 3.函数y=f(x)可表示为: */ void main() { int ...

  9. Django 08 Django模型基础3(关系表的数据操作、表关联对象的访问、多表查询、聚合、分组、F、Q查询)

    Django 08 Django模型基础3(关系表的数据操作.表关联对象的访问.多表查询.聚合.分组.F.Q查询) 一.关系表的数据操作 #为了能方便学习,我们进入项目的idle中去执行我们的操作,通 ...

随机推荐

  1. sdut1642Simple Arithmetics(模拟)

    链接 发个长长的模拟 这题要注意的地方挺多 -的个数 以及对齐的情况 全都注意好了 大数的加减乘就可以了 #include <iostream> #include<cstdio> ...

  2. Android开发学习——高德地图的实现

    1.首先做好下边的准备: 1.1  http://lbs.amap.com/   注册账号 1.2  下载 定位sdk 和 地图sdk 下载后是这样的 1.3  对下载的进行解压 将他们加入 中,对每 ...

  3. AJPFX详解泛型中super和extends关键字

    首先,我们定义两个类,A和B,并且假设B继承自A.下面的代码中,定义了几个静态泛型方法,这几个例子随便写的,并不是特别完善,我们主要考量编译失败的问题: Java代码  public class Ge ...

  4. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第二天(非原创)

    文章大纲 一.课程介绍二.整合淘淘商城ssm项目三.Mybatis分页插件PageHelper使用四.整合测试五.项目源码与资料下载六.参考文章   一.课程介绍 一共14天课程(1)第一天:电商行业 ...

  5. 学习笔记 第十二章 CSS3+HTML5网页排版

    第12章   CSS3+HTML5网页排版 [学习重点] 正确使用HTML5结构标签 正确使用HTML5语义元素 能够设计符合标准的网页结构 12.1  使用结构标签 在制作网页时,不仅需要使用< ...

  6. Java语法基础-异常处理

    异常处理类层次结构图 检查异常与非检查异常 非检查异常(unckecked exception):Error 和 RuntimeException 以及他们的子类.javac在编译时,不会提示和发现这 ...

  7. 框架开发之Java注解的妙用

    注解的好处:1.能够读懂别人写的代码,特别是框架相关的代码.2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程更加简洁,代码更加清晰.3.(重点 ...

  8. chgrp - 改变文件的组所有权

    总览 chgrp [选项] 组文件... POSIX 选项: [-R] [--] Austin 草拟选项: [-hHLPR] GNU 团体指示: [--reference=rfile] GNU 选项 ...

  9. BEGIN - 开始一个事务块

    SYNOPSIS BEGIN [ WORK | TRANSACTION ] DESCRIPTION 描述 BEGIN 初始化一个事务块, 也就是说所有 BEGIN 命令后的用户语句都将在一个事务里面执 ...

  10. Mysql 字符函数详解

    MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 .如果str为NULL,则返回NULL -- 只返回a的ASCII编码 ...