A

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 3e7;
const int maxn = ;
int main()
{
int n, m;
while (cin >> n >> m)
{
int mid = (n + m) / ;
//cout<<mid<<endl;
int x1 = abs(mid - n);
int x2 = abs(m - mid);
int ans = ( + x1) * x1 / + ( + x2) * x2 / ;
cout << ans << endl;
} }

B

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll Mod = ;
int main()
{
int n;
cin >> n;
int a, b;
cin >> a >> b;
if (a > b)
{
swap(a, b);
}
if (a <= n / && b > n / )
{
cout << "Final!" << endl;
return ;
}
int anser = ;
while (true)
{
a = (a + (a % )) / ;
b = (b + (b % )) / ;
if (a == b)
{
cout << anser << endl;
return ;
}
anser++;
}
return ;
}

C

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 3e7;
const int maxn = ;
int num[];
int anser;
int main()
{
int mx=-;
int mn=;
int mxnum=;
int mnnum=;
int n;
cin >> n;
anser=n;
for(int i=; i<=n; i++)
{
scanf("%d",&num[i]);
mx=max(mx,num[i]);
mn=min(mn,num[i]);
}
if(mx-mn<=)
{
cout<<n<<endl;
for(int i=; i<=n; i++)
cout<<num[i]<<" ";
cout<<endl;
return ;
}
for(int i=; i<=n; i++)
{
if(num[i]==mx)
mxnum++;
else if(num[i]==mn)
mnnum++;
}
int midnum=n-mxnum-mnnum;
if(midnum/>=min(mxnum,mnnum))
{
int cur=midnum/;
int cur1=cur;
for(int i=; i<=n; i++)
{
if(num[i]==mn+&&cur)
{
anser--;
num[i]--;
cur--;
continue;
}
if(num[i]==mn+&&cur1)
{
anser--;
num[i]++;
cur1--;
continue;
}
}
}
else
{
int cur=min(mxnum,mnnum);
int cur1=cur;
for(int i=;i<=n;i++)
{
if(num[i]==mn&&cur)
{
num[i]++;
anser--;
cur--;
continue;
}
if(num[i]==mx&&cur1)
{
num[i]--;
anser--;
cur1--;
continue;
}
}
}
cout<<anser<<endl;
for(int i=;i<=n;i++)
cout<<num[i]<<" ";
cout<<endl; }

D

思维题 一层一层地消

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 3e7;
const int maxn = ;
int nextt[];
int num[];
int level[];
int dp[];
int anser = ;
int main()
{
int n;
cin >> n;
dp[] = level[] = dp[] = ;
for (int i = ; i <= n; i++)
{
scanf("%d", &nextt[i]);
dp[i] = dp[nextt[i]] + ;
level[dp[i]]++;
}
for(int i=;i<=;i++)
{
if(level[i]&)
anser++;
}
cout<<anser<<endl;
return ;
}

E

状压DP

dp[i][j][k]表示第一个字母是i第二个字母是j距离为k有多少个

因为第一个字母是由第一个玩家定的 所以无法选择 第二个字母可以选择但只能最优地选一次 所以ans+=now 取所有长度里面概率最高的

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxn = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
const int turn2[][] = {{, }, { -, }, {, }, {, -}, {, -}, { -, -}, {, }, { -, }};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
char a[];
int dp[][][];
int anser = ;
int main()
{
scanf("%s", a + );
int len = strlen(a + );
for (int i = ; i <= len; i++)
{
a[i + len] = a[i];
}
for (int i = ; i <= len; i++)
{
for (int j = i + ; j < i + len; j++)
{
dp[a[i] - 'a'][a[j] - 'a'][j - i + ]++;
}
}
int now = ;
int cur;
for (int i = ; i < ; i++)
{
now = ;
for (int j = ; j <= len; j++)
{
cur = ;
for (int k = ; k < ; k++)
{
if (dp[i][k][j] == )
{
cur++;
}
}
now = max(now, cur);
}
anser += now;
}
printf("%.10f", (double)anser / len);
return ;
}

F

待补

Codeforces 931 概率DP的更多相关文章

  1. Codeforces 28C [概率DP]

    /* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室. 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队. 求所有浴室中最长队 ...

  2. codeforces 148D 概率DP

    题意: 原来袋子里有w仅仅白鼠和b仅仅黑鼠 龙和王妃轮流从袋子里抓老鼠. 谁先抓到白色老师谁就赢. 王妃每次抓一仅仅老鼠,龙每次抓完一仅仅老鼠之后会有一仅仅老鼠跑出来. 每次抓老鼠和跑出来的老鼠都是随 ...

  3. codeforces 540D 概率dp

    传送门 大概可以这样理解, 一开始有r个石头, p个布, s个剪刀, 每一天有其中的两个相遇, 如果两个是相同的种类, 什么都不会发生, 否则的话有一个会挂掉, 问最后每一种生存的概率. dp[i][ ...

  4. CodeForces 398B 概率DP 记忆化搜索

    题目:http://codeforces.com/contest/398/problem/B 有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了 ...

  5. Codeforces - 518D 概率DP初步

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...

  6. Vasya and Magic Matrix CodeForces - 1042E (概率dp)

    大意:给定n*m矩阵, 初始位置(r,c), 每一步随机移动到权值小于当前点的位置, 得分为移动距离的平方, 求得分期望. 直接暴力dp的话复杂度是O(n^4), 把距离平方拆开化简一下, 可以O(n ...

  7. Broken robot CodeForces - 24D (概率DP)

    You received as a gift a very clever robot walking on a rectangular board. Unfortunately, you unders ...

  8. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  9. Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题

    除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃 ...

随机推荐

  1. jdk环境配置(windows版)

    JAVA_HOME C:\Program Files\Java\jdk1.7.0_80 Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH .;%J ...

  2. linux 设置 hugepage

    临时设置 hugepage > /sys/kernel/mm/hugepages/hugepages-16384kB/nr_hugepages 查看是否设置成功 cat /proc/meminf ...

  3. [C#菜鸟]C# Hook (一)

    转过来的文章,出处已经不知道了,但只这篇步骤比较清晰,就贴出来了. 一.写在最前 本文的内容只想以最通俗的语言说明钩子的使用方法,具体到钩子的详细介绍可以参照下面的网址: http://www.mic ...

  4. 分析邮件日志从每秒处理3个结果到每秒处理800个结果过程(grep提速)

    由于业务需要,对EDM发出的邮件日志进行分析处理,我要做的是预处理,把posfix杂乱无章的日志中找到我需要的数据. 我用javamail发的邮件,发送邮件时获取到是一个messageId,形如:21 ...

  5. C# 创建和引入动态链接库dll文件

    一.创建动态链接库dll文件 新建 -> 项目->类库 名称为:dlltest 添加函数:消息框弹出消息 using System.Collections.Generic; using S ...

  6. Kolla 让 OpenStack 部署更贴心

    目录 目录 Kolla 简介 Kolla & Kolla-ansible 部署 OpenStack 准备操作系统基础环境 准备 Python 基础环境 准备 Docker 基础环境 安装 ko ...

  7. Jmeter之线程组(默认)

    Jmeter中的采样器必须要基于线程组. 一.添加线程组 在测试计划上右键,然后选择,如下图: 二.线程组界面 三.线程组界面配置说明 1.名称:线程组自定义名称: 2.注释:添加的一些备注说明信息, ...

  8. redis在ubuntu下的安装

    安装: 1.apt-get install redis 2.接下来输入redis-cli,登陆redis,然后就可以操作redis了 卸载 在ubuntu下卸载redis 1. 卸载软件 apt-ge ...

  9. 用seborn的函数distplot(), jointplot(), pairplt()对数据的单变量分析绘图

    1.用seaborn的distplot()函数绘制直方图.参数kde = True时会把分布曲线也画出来. 如下代码所示是绘制标准正态分布的分布图 import seaborn as sns impo ...

  10. echars 柱状图 堆叠状态 --》二次封装

    <template> <!-- 柱状图 堆叠 1. 调用页面引入 import EcharsColumnStack from '@/components/echarsColumnSt ...