Codeforces 957 水位标记思维题
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 turn[][] = {{, }, { -, }, {, }, {, -}};
- //priority_queue<int, vector<int>, less<int>> que;
- //next_permutation
- string a;
- int anser = ;
- int main()
- {
- int n;
- cin >> n;
- cin >> a;
- int len = a.size();
- for (int i = ; i < len - ; i++)
- {
- if (a[i] == a[i + ] && a[i] != '?')
- {
- cout << "No" << endl;
- return ;
- }
- }
- if (a[] == '?' || a[len - ] == '?')
- {
- cout << "Yes" << endl;
- return ;
- }
- for (int i = ; i < len - ; i++)
- {
- if (a[i] == '?' && (a[i - ] == a[i + ]))
- {
- cout << "Yes" << endl;
- return ;
- }
- }
- for (int i = ; i < len - ; i++)
- {
- if (a[i] == a[i + ] && a[i] == '?')
- {
- cout << "Yes" << endl;
- return ;
- }
- }
- cout << "No" << 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
- char f[][];
- int hang[];
- int main()
- {
- int n, m;
- int sum = ;
- cin >> n >> m;
- for (int i = ; i <= n; i++)
- {
- scanf("%s", f[i] + );
- }
- for (int i = ; i <= n; i++)
- {
- if (hang[i])
- {
- continue;
- }
- for (int j = ; j <= m; j++)
- {
- if (f[i][j] == '#')
- {
- //cout << i << " " << j << endl;
- for (int k = ; k <= n; k++)
- {
- if (k == i)
- {
- continue;
- }
- if (f[k][j] == '#')
- {
- // cout << "find" << k << " " << j << endl;
- for (int w = ; w <= m; w++)
- {
- if (f[k][w] != f[i][w])
- {
- cout << "No" << endl;
- return ;
- }
- }
- hang[k] = ;
- }
- }
- }
- }
- }
- cout << "Yes" << endl;
- 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 turn[][] = {{, }, { -, }, {, }, {, -}};
- //priority_queue<int, vector<int>, less<int>> que;
- //next_permutation
- int num[];
- int main()
- {
- double anser = -;
- int n, u;
- cin >> n >> u;
- num[n + ] = INT_MAX;
- for (int i = ; i <= n; i++)
- {
- scanf("%d", num + i);
- }
- for (int i = ; i <= n - ; i++)
- {
- int now = num[i];
- int cha = num[i + ] - num[i];
- int aim = upper_bound(num + , num + n + , num[i] + u) - num - ;
- if (aim - i <= || aim > n)
- {
- continue;
- }
- //cout << i << " " << aim << endl;
- anser = max(anser, (double)(num[aim] - num[i] - cha) / (double)(num[aim] - num[i]));
- }
- if (anser == -)
- {
- cout << anser << endl;
- }
- else
- {
- printf("%.10f\n", anser);
- }
- return ;
- }
D
假设在第i次量的时候的总标记数为sum[i] 可知其必定为非递减函数 sum[i]=d[i]+m[i]+1
要使d[i]的总值最小则 要在m[i]+1上面再加数使得 m[i]>=m[i-1]&&m[i+1]-1<=m[i]<=m[i+1]
先从前往后扫一遍满足第一个条件 再从往前扫一遍满足第二个条件
注意要开LL
- #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 num[];
- int main()
- {
- int n;
- cin >> n;
- ll maxn = - ;
- ll ans = ;
- for (int i = ; i <= n; i++)
- {
- scanf("%lld", num + i);
- maxn = max(maxn, num[i]);
- }
- for (int i = ; i <= n - ; i++)
- {
- if (num[i + ] < num[i])
- {
- ans += num[i] - num[i + ];
- num[i + ] = num[i];
- }
- }
- for (int i = n; i >= ; i--)
- {
- if (num[i] - num[i - ] > )
- {
- ans += num[i] - - num[i - ];
- num[i - ] = num[i] - ;
- }
- }
- cout << ans << endl;
- return ;
- }
Codeforces 957 水位标记思维题的更多相关文章
- CF--思维练习-- CodeForces - 215C - Crosses(思维题)
ACM思维题训练集合 There is a board with a grid consisting of n rows and m columns, the rows are numbered fr ...
- Codeforces 675C Money Transfers 思维题
原题:http://codeforces.com/contest/675/problem/C 让我们用数组a保存每个银行的余额,因为所有余额的和加起来一定为0,所以我们能把整个数组a划分为几个区间,每 ...
- Codeforces 1090D - Similar Arrays - [思维题][构造题][2018-2019 Russia Open High School Programming Contest Problem D]
题目链接:https://codeforces.com/contest/1090/problem/D Vasya had an array of n integers, each element of ...
- codeforces 1140D(区间dp/思维题)
D. Minimum Triangulation time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- ACM思维题训练 Section A
题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...
- codeforces ~ 1009 B Minimum Ternary String(超级恶心的思维题
http://codeforces.com/problemset/problem/1009/B B. Minimum Ternary String time limit per test 1 seco ...
- 贪心/思维题 Codeforces Round #310 (Div. 2) C. Case of Matryoshkas
题目传送门 /* 题意:套娃娃,可以套一个单独的娃娃,或者把最后面的娃娃取出,最后使得0-1-2-...-(n-1),问最少要几步 贪心/思维题:娃娃的状态:取出+套上(2),套上(1), 已套上(0 ...
- C. Nice Garland Codeforces Round #535 (Div. 3) 思维题
C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- CodeForces - 631C ——(思维题)
Each month Blake gets the report containing main economic indicators of the company "Blake Tech ...
随机推荐
- Vue/Element-ui 安装搭建开发环境(一)
Element 是饿了么全段开发团队推出的一套基于 vue.js2.0 的 PC Web 端开发框架. Element 中文文档:https://element.eleme.cn/#/zh-CN 1. ...
- File类 ReadAllBytes() ReadAllLines() ReadAllText()
用 File 类里的 ReadAllLines方法读取文件string[] contents = File.ReadAllLines(@"F:\Users\zhuotu003\Desktop ...
- nginx location的优先级
原来一直以为location的优先级是先后顺序,结果有次项目中傻眼了,赶紧百度一下,下面的内容参考了这个链接 location表达式类型 ~ 表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配 ...
- iOS SDK开发之 .framework静态库
查看.a静态库的生成及使用单击此处 注:这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤.环境:xcode 9.2下面我们开始操作: 第一步:创建一个静态库工程 ...
- kafka 通信报文格式
1. 序列化一条消息 消息有 key 和 value kafka 提供了基础数据类型的序列化工具,对于业务的自定义类需要自行实现序列化 ProducerRecord 是对象,含 KV 和 header ...
- 【Python】我的豆瓣短评爬虫的多线程改写
对之前我的那个豆瓣的短评的爬虫,进行了一下架构性的改动.尽可能实现了模块的分离.但是总是感觉不完美.暂时也没心情折腾了. 同时也添加了多线程的实现.具体过程见下. 改动 独立出来的部分: MakeOp ...
- 【Linux开发】【Qt开发】交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
一. 什么是ABI和EABI1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)在计算机中,应用 ...
- django中使用原生的orm
只有用的时候才能执行
- Js AJAX Event
;(function () { if ( typeof window.CustomEvent === "function" ) return false; function Cus ...
- 【嵌入式 Linux文件系统】如何使用NFS文件系统
(1)内核配置 取消选项 General setup-->Initial RAM filesystem and RAM disk (initramfs/initrd) support 进入Fil ...