清澄A1202&Bzoj2201:彩色圆环

因为Bzoj是权限题,所以可以去清澄做一下


Sol

突然考了一道这样的题,考场上强行\(yy\)出来了
win下评测Long double爆零TAT

首先肯定是破环为链变成序列问题辣
那么就要求第一个的颜色和最后的颜色不同
怎么统计,枚举前面有多长和右面有多长长度相等
中间的强制第一个与枚举的前面不同,以及最后一个与枚举的后面(就是前面)不同
合起来就是答案

考虑中间的怎么算
设\(f[0/1][i]\)表示到第\(i\)个位置,颜色与枚举的前面相同(\(1\)),不同(\(0\))的期望得分
转移:枚举小于\(i\)的\(j\)转移过来

\(f[1][i]+=f[0][j]*(i-j)*(\frac{1}{m})^{(i-j)}\)
\(f[0][i]+=f[0][j]*(i-j)*(m-2)*(\frac{1}{m})^{(i-j)}\)
\(f[0][i]+=f[1][j]*(i-j)*(m-1)*(\frac{1}{m})^{(i-j)}\)

# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;

IL int Input(){
    RG int x = 0, z = 1; RG char c = getchar();
    for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
    for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
    return x * z;
}

int n;
long double ans, f[2][205], dv[205], m;

int main(RG int argc, RG char* argv[]){
    n = Input(), m = Input(), dv[0] = 1;
    for(RG int i = 1; i <= n; ++i) dv[i] = dv[i - 1] / m;
    f[1][0] = 1;
    for(RG int i = 1; i <= n; ++i)
        for(RG int j = 0; j < i; ++j){
            f[1][i] += f[0][j] * (i - j) * dv[i - j];
            f[0][i] += f[0][j] * (i - j) * (m - 2) * dv[i - j];
            f[0][i] += f[1][j] * (i - j) * (m - 1) * dv[i - j];
        }
    ans = 1.0 * n * m * dv[n];
    for(RG int i = 1; i < n; ++i)
        for(RG int j = 0; j + i < n; ++j)
            ans += 1.0 * (j + i) * m * dv[j + i] * f[0][n - j - i];
    printf("%.10Lf\n", ans);
    return 0;
}

原文地址:https://www.cnblogs.com/cjoieryl/p/8473350.html

时间: 2024-11-06 21:43:04

清澄A1202&Bzoj2201:彩色圆环的相关文章

从《彩色圆环》一题探讨一类环上dp的解法

清橙A1202 bzoj2201 bsoj4074 先看看这篇官方题解的问题\(A\),了解一下经典的圆环染色问题 --<彩色圆环(circle)>命题报告,吴佳俊 题外话:其实还可以更优,用矩阵快速幂可以优化,也可以特征根推出通项公式,这里不展开讨论了 我们从中获取了一种处理环上dp的思路,即增设一维来维护首尾是否相同 先来看链的情况 设\(f[i]\)表示考虑到第\(i\)位时的期望美观度,显然有 \[ f[i]=\sum_{0 \le j < i} f[j]*(i-j)*P[i-j

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

菜鸟流程-Touching App(1)- 主界面

接下来我会把自己写Touching App的过程一一写下来,不过由于刚上路,可能还有很多错误,包括博客也是~~ 小事情啦,开心就好n(≧▽≦)n 这个app准备用来接收单片机传来的数据,然后显示在手机上,对环境进行评价. 下面进入正题啦. 一.界面元素分析 先看一下美工给我的图: 是基于常见的1280*720像素的图片. 很显然,这个图片是有三部分构成的,上面的按钮层,中间的圆环,底部的数据展示.最难的应该是中间的圆环,所以我是先从这一部分开始的. 二.主界面_中部圆环实现 其实写过了之后回头看

实现类似QQ离线用户头像彩色变灰色的效果

头像由彩色变灰色有两种实现方式: 方法1把图片彩色图转换为纯黑白二色: /** * 将彩色图转换为纯黑白二色 * * @param 位图 * @return 返回转换好的位图 */ private Bitmap convertToBlackWhite(Bitmap bmp) { int width = bmp.getWidth(); // 获取位图的宽 int height = bmp.getHeight(); // 获取位图的高 int[] pixels = new int[width * h

彩色西装 来一整套·都市周报

彩色西装 来一整套·都市周报    彩色西装 来一整套         2012-02-02    Tilda Swinton的白色版本飘飘欲仙,请注意,白色依然是今年的重点,重中之重就是要学会白到彻底的境界,各种不同白色的混搭重叠.    Blake Lively真空上阵,没有露出脚踝,就露出胸前大好江山,西装上衣有蕾丝变化,头发光洁扎起,是一个隆重的穿法.    设计师Tory Burch选择了红底条纹,搭配卡通图案T恤,轻松时髦.    超模Karolina Kurkova参加Tommy

自定义控件:绘制圆环的实现过程

使用自定义控件绘制一个圆环,需要重现的方法是OnDraw()实现对view 的绘制,从而输出符合自己需求的view 控件观察圆环的组成部分:外层圆+中间百分比文字+不断变化进度的弧形圈--->分析:每一个组成部分需要的属性,构成几个关键的自定义属性1:外层圆的颜色2:弧形进度圈的颜色3:中间百分比文字的颜色4:中间百分比文字的大小5:圆环的宽度(作为进度弧形圈的宽度)6:*首页当中也有一个圆环进度,为了兼容使用首页的圆环进度,增加一个自定义属性,绘制进度弧形圈的风格(实心[Fill],空心[St

Directx11学习笔记【十二】 画一个旋转的彩色立方体

上一次我们学习了如何画一个2D三角形,现在让我们进一步学习如何画一个旋转的彩色立方体吧. 具体流程同画三角形类似,因此不再给出完整代码了,不同的部分会再说明. 由于我们要画彩色的立方体,所以顶点结构体中加入颜色变量 struct Vertex { XMFLOAT3 pos; XMFLOAT4 color; }; 着色器代码 1 cbuffer cbPerObject 2 { 3 float4x4 gWorldViewProj; 4 }; 5 6 struct VertexIn 7 { 8 flo

自定义组合控件 圆环 ring

说明 可以设置内部填充或不填充 可以社会中边框颜色 View public class MyRingView extends RelativeLayout {     private Context mContext;     private ImageView iv_circle;     private ImageView iv_solid;     public MyRingView(Context context) {         super(context);         in

iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪

一.图片裁剪,示意图 二.带圆环的图片裁剪示意图