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. socket的补充

  2. ZXing使用详解与范例(C#)

    介绍 ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口.Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码.(引自百度百科) 用 ...

  3. leetcode-easy-array-217. Contains Duplicate

    mycode  76.39% class Solution(object): def containsDuplicate(self, nums): """ :type n ...

  4. ORACLE同义词使用

    多用户协同开发中,可以屏蔽对象的名字及其持有者.如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名, 当然这里要注意的是 ...

  5. GUID和UUID、CLSID、IID 区别及联系

    当初微软设计com规范的时候,有两种选择来保证用户的设计的com组件可以全球唯一: 第一种是采用和Internet地址一样的管理方式,成立一个管理机构,用户如果想开发一个COM组件的时候需要向该机构提 ...

  6. 创建Stream

    1.创建Stream create Stream from Collections; create Stream from values; create Stream from Arrays; cra ...

  7. Scratch少儿编程系列:(六)诗词《从军行》赏析

    一.程序说明 本程序用来显示<从军行>诗词,逐字显示.本来计划用2.0制作,但在制作过程中,在“造型”中无法输入汉字,临时采用3.0版本,1.4版本也可以. 二.程序流程图 为了更直观的描 ...

  8. lsb-realse

    [root@localhost ~]# lsb_release -a -bash: lsb_release: command not found 解决方法:yum install redhat-lsb ...

  9. 20191127 Spring Boot官方文档学习(6-8)

    6.部署Spring Boot应用程序 在部署应用程序时,Spring Boot的灵活打包选项提供了很多选择.您可以将Spring Boot应用程序部署到各种云平台,容器映像(例如Docker)或虚拟 ...

  10. es7.4.0集群部署

    其实主要是配置的变化,需要指定下master节点 cluster.name: prod-es node.name: node1 node.master: true node.data: true pa ...