Codeforces 931 概率DP
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的更多相关文章
- Codeforces 28C [概率DP]
/* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室. 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队. 求所有浴室中最长队 ...
- codeforces 148D 概率DP
题意: 原来袋子里有w仅仅白鼠和b仅仅黑鼠 龙和王妃轮流从袋子里抓老鼠. 谁先抓到白色老师谁就赢. 王妃每次抓一仅仅老鼠,龙每次抓完一仅仅老鼠之后会有一仅仅老鼠跑出来. 每次抓老鼠和跑出来的老鼠都是随 ...
- codeforces 540D 概率dp
传送门 大概可以这样理解, 一开始有r个石头, p个布, s个剪刀, 每一天有其中的两个相遇, 如果两个是相同的种类, 什么都不会发生, 否则的话有一个会挂掉, 问最后每一种生存的概率. dp[i][ ...
- CodeForces 398B 概率DP 记忆化搜索
题目:http://codeforces.com/contest/398/problem/B 有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了 ...
- Codeforces - 518D 概率DP初步
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...
- Vasya and Magic Matrix CodeForces - 1042E (概率dp)
大意:给定n*m矩阵, 初始位置(r,c), 每一步随机移动到权值小于当前点的位置, 得分为移动距离的平方, 求得分期望. 直接暴力dp的话复杂度是O(n^4), 把距离平方拆开化简一下, 可以O(n ...
- Broken robot CodeForces - 24D (概率DP)
You received as a gift a very clever robot walking on a rectangular board. Unfortunately, you unders ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题
除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃 ...
随机推荐
- linux C 加载so文件 指定路径
在Linux C中动态加载.so文件用dlopen("libdemo.so", RTLD_NOW); 但是默认的so搜索目录不包括当前程序目录,所以必须复制到系统的so目录 才能运 ...
- iter方法读取文件的例子
def iter_file(path, size=1024): with open(path, "rb", ) as f: for data in iter(lambda: f.r ...
- Mybaits基本的CURD操作
1 首先在Mapper.xml配置 <!-- parameterType:参数类型,可以省略, 获取自增主键的值: mysql支持自增主键,自增主键值的获取,mybatis也是利用stateme ...
- PropertyInfo、FieldInfo、MemberInfo的区别
public class TestClass { ;//私有一律获取不到 public int b { ; } ; } } ; } public static void TestMethod() { ...
- js监听当前页面再次加载
document.addEventListener("visibilitychange", function () { if (!document.hidden) { //处于当前 ...
- win10 iis部署后 浏览目录报错 500.19
错误摘要HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效.详细错误信息模块 IIS Web Core 通知 BeginReq ...
- Java ——扩展:内部类 匿名内部类 IO file 设计模式
内部类的拓展 定义类or方法内部的类 最外层的类只能使用public和默认修饰 class Demo { class A { } public static void main(String[] ar ...
- Django-DRF组件学习-路由学习
1.路由router 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息. REST framework提 ...
- 九、Zabbix-触发器
1.触发器是用来触发报警,或这其他动作的机制,它需要依赖监控项,以监控项为基础创建 3.创建触发器 (1)配置—>模板—>需要调整的模板—>触发器 (2)编辑触发器
- Python web 面试题(一)
1.列举django的内置组件? url .view.model.template.中间件 2.列举django中间件的5个方法?以及django中间件的应用场景? process_request(s ...