Codeforces Round #316 (Div. 2) (ABC题)
A - Elections
题意:
每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利。
最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序),第一位获得胜利。
求最后选举获胜者。
思路:
直接模拟就可以。
代码:
/*
* @author FreeWifi_novicer
* language : C++/C
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
using namespace std;
#define clr( x , y ) memset(x,y,sizeof(x))
#define cls( x ) memset(x,0,sizeof(x))
#define mp make_pair
#define pb push_back
typedef long long lint;
typedef long long ll;
typedef long long LL;
const int maxn = 105;
struct C{
int v;
int no;
}c[maxn][maxn];
int cnt[maxn];
bool cmp(C a , C b){
if(a.v != b.v) return a.v < b.v;
return a.no > b.no;
}
int main(){
//freopen("input.txt","r",stdin);
int n,m;
while( cin >> n >> m){
cls(cnt);
for(int i = 1 ; i <= m ; i++){
for(int j = 1 ; j <= n ; j++){
c[i][j].no = j;
scanf("%d",&c[i][j].v);
}
sort(c[i]+1 , c[i]+n+1 , cmp);
for(int j = 1 ; j <= n ; j++){
}
cnt[c[i][n].no]++;
}
int ans = n;
int tmp = cnt[n];
for(int i = n ; i >= 1 ; i--){
if(tmp <= cnt[i]){
ans = i;
tmp = cnt[i];
}
}
cout << ans << endl;
}
return 0;
}
B - Simple Game
题意:
Misha 与 Andrew 玩游戏,两人在1~n范围内各选一个数字(可同样),然后在1~n范围内随机出一个数字x,Misha 和 Andrew 的数字减去x的绝对值较小者获胜。若一致,则 Misha 获胜,如今已知 n 与 Misha 选择的数字,求 Andrew 胜率最高(同等胜率取最小)的数字。
思路:
分类讨论,仅仅须要考虑 Misha 左右的位置就可以。
注意 n = 1 时的情况特判。
代码:
/*
* @author FreeWifi_novicer
* language : C++/C
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
using namespace std;
#define clr( x , y ) memset(x,y,sizeof(x))
#define cls( x ) memset(x,0,sizeof(x))
#define mp make_pair
#define pb push_back
typedef long long lint;
typedef long long ll;
typedef long long LL;
int main(){
// freopen("input.txt","r",stdin);
int m,n;
while(cin >> n >> m){
if(m == 1){
if(n == 1)
cout << 1 << endl;
else{
cout << m+1 << endl;
}
continue;
}
if(m == n){
if(n == 1)
cout << 1 << endl;
else{
cout << m-1 << endl;
}
continue;
}
int ans;
if(n&1){
int tmp = (n+1) / 2;
if(m < tmp){
ans = m+1;
}
else if(m > tmp)
ans = m-1;
else if(m == tmp)
ans = m-1;
}
else{
int tmp = n / 2;
if(m < tmp){
ans = m+1;
}
else if(m > tmp)
ans = m-1;
else if(m == tmp)
ans = m+1;
}
cout << ans << endl;
}
return 0;
}
C - Replacement
题意:
输入一个含 ‘.’ 与小写英文字母的字符串。
定义一种操作为: 将字符串中的 “..” 替代为 “.” ;
定义字符串的价值等于最大操作次数。
如今有 m 个询问 , 每个询问都将改变字符串指定位置上的字符为指定字符,计算询问后的字符串价值。
思路:
这题神似线段树的风格(用线段树也确实能够做。
这题的关键是简化不同情况的分类讨论。我之前的想法一直是记录每个 ‘.’ 区间的情况,然后询问时二分在哪个区间就可以,结果发现写起来思路混乱毫无逻辑。又是set又是map的。。
直到在standing榜看到第二名的神牛的代码。
。怒删原来代码重写了一份。简单了非常多非常多。
代码:
/*
* @author FreeWifi_novicer
* language : C++/C
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
using namespace std;
#define clr( x , y ) memset(x,y,sizeof(x))
#define cls( x ) memset(x,0,sizeof(x))
#define mp make_pair
#define pb push_back
typedef long long lint;
typedef long long ll;
typedef long long LL;
int main(){
//freopen("input.txt","r",stdin);
int n , m ;
string s;
cin >> n >> m >> s;
int cnt = 0;
for( int i = 1 ; i < s.length() ; i++ ){
if( s[i] == '.' && s[i-1] == '.') cnt ++;
}
for( int i = 1 ; i <= m ; i++ ){
int p ;
char c ;
scanf( "%d %c" , &p , &c );
p--;
if( p > 0 && s[p] == '.' && s[p - 1] == '.' ) cnt--;
if( p < s.length() && s[p] == '.' && s[p + 1] == '.' ) cnt--;
s[p] = c;
if( p < s.length() && s[p] == '.' && s[p + 1] == '.' ) cnt++;
if( p > 0 && s[p] == '.' && s[p - 1] == '.' ) cnt++;
cout << cnt << endl;
}
return 0;
}
Codeforces Round #316 (Div. 2) (ABC题)的更多相关文章
- B. Simple Game( Codeforces Round #316 (Div. 2) 简单题)
B. Simple Game time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces Round #378 (Div. 2) D题(data structure)解题报告
题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #247 (Div. 2) ABC
Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431 代码均已投放:https://github.com/illuz/Wa ...
- Codeforces Round #713 (Div. 3)AB题
Codeforces Round #713 (Div. 3) Editorial 记录一下自己写的前二题本人比较菜 A. Spy Detected! You are given an array a ...
- Codeforces Round #552 (Div. 3) A题
题目网址:http://codeforces.com/contest/1154/problem/ 题目意思:就是给你四个数,这四个数是a+b,a+c,b+c,a+b+c,次序未知要反求出a,b,c,d ...
- Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring
D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Codeforces Round #556 (Div. 2)-ABC(这次的题前三题真心水)
A. Stock Arbitraging 直接上代码: #include<cstdio> #include<cstring> #include<iostream> ...
随机推荐
- android的布局-----RelativeLayout(相对布局)
学习导图 注:父容器定位的属性值只能是Boolean ,兄弟组件定位的属性值只能是ID 典型案例(梅花) <?xml version="1.0" encoding=" ...
- Turn on and off trigger events 生效控制
平台 Qualcomm 解說 Qualcomm 平台的 Turn-on event 有 KYPD_PWR_N,CBL_PWR_N,.... 也有 PMIC reset and power-off ev ...
- LeetCode OJ-- Recover Binary Search Tree ***@
https://oj.leetcode.com/problems/recover-binary-search-tree/ 一棵二叉搜索树,二叉搜索树的特征是,中根遍历的话,得到的序列是递增的 题目中, ...
- (一)python 简单网页爬虫
1.基于window环境,使用的工具是 Anaconda 下载地址 https://www.anaconda.com/download/ 2.所使用的包 BeautifulSoup,用来解析html代 ...
- DB2 数据库中字段特定字符替换为空
Update RM_CarInfo set ImportTitle = Replace(ImportTitle,'ZD','') WHERE ImportTitle LIKE'%ZD%';
- 大话Spark(4)-一文理解MapReduce Shuffle和Spark Shuffle
Shuffle本意是 混洗, 洗牌的意思, 在MapReduce过程中需要各节点上同一类数据汇集到某一节点进行计算,把这些分布在不同节点的数据按照一定的规则聚集到一起的过程成为Shuffle. 在Ha ...
- andriod GridLayout
来自:http://blog.csdn.net/jianghuiquan/article/details/8299973 GridLayout网格布局 android4.0以上版本出现的GridLay ...
- tomcat使用安全及CVE-2017-12615
tomcat安全情报的收集 1.首先定期查看官网各个版本存在的安全漏洞公告: http://tomcat.apache.org/security.html 2.去各大漏洞网站查看漏洞披露信息 看几个漏 ...
- AngularJS中,<span class="bluetext" ng-bind="ctrl.user.name|uppercase"></span>和{{ctrl.user.name|uppercase}}是等价的,但不等于<span class="bluetext" ng-bind="ctrl.user.name|uppercase"/>
代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsAttenSpan.rar AngularJS中,<span class= ...
- GlusterFS源代码解析 —— GlusterFS 内存分配方式
原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564891 GlusterFS 的内存分配主要有两种方式,一种是内存 ...