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> ...
随机推荐
- duilib入门简明教程 -- 界面布局(9) (转)
原文转自:http://www.cnblogs.com/Alberl/p/3343806.html 上一个教程实现的标题栏代码中,并没有看到处理自适应窗口大小的代码,但是窗口大小变化后,按钮的 ...
- android init.rc命令快速对照表
注1:另外还讲述了怎样输出log: Debugging notes---------------By default, programs executed by init will drop stdo ...
- .NET CMS系统--pageAdmin 模板样式设置
修改方法: 表单模型管理 - 数据表管理 - 模型管理 修改产品详情页
- Android进阶之Fragment与Activity之间的数据交互
1 为什么 因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. 2 Activity把值传递给Fragment 2.1 第一种方式,也是最常用的 ...
- Android修改包名的方法,简单粗暴。
几分钟之内,简单粗暴的修改包名! 序:Android的新手玩家可能对修改包名这件事情很是烦恼,我这里给出一个最快的修改包名的方法,简单粗暴,喜欢的可以收藏一下. 开始修改 第一步:修改自己app mo ...
- Maximum Product Subarray - LeetCode
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- openfire常见几类插件开发研究与总结
openfire 的插件可以访问所有openfire的API,这给我们的插件实现提供了巨大的灵活性. 以下介绍几类比较常用的插件集成方式: 基于源码XMPP协议的插件 比如:IQHandler,常用来 ...
- maven管理整理
maven管理整理 学习了:https://www.imooc.com/learn/443 mvn -v 版本 compile 编译 test 测试 package 打包 clean 删除 insta ...
- make -j 4 echo !$
make -j 4 #以cpu四核编译 !$上一次命令空格后的部分
- Vue 内容分发slot
1.概述 内容分发:混合父组件的内容与子组件自己的模板. 2.单个插槽 当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身. 最初在 ...