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题)的更多相关文章

  1. 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 ...

  2. Codeforces Round #378 (Div. 2) D题(data structure)解题报告

    题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...

  3. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  4. 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 ...

  5. Codeforces Round #247 (Div. 2) ABC

    Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431  代码均已投放:https://github.com/illuz/Wa ...

  6. Codeforces Round #713 (Div. 3)AB题

    Codeforces Round #713 (Div. 3) Editorial 记录一下自己写的前二题本人比较菜 A. Spy Detected! You are given an array a ...

  7. 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 ...

  8. 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 ...

  9. Codeforces Round #556 (Div. 2)-ABC(这次的题前三题真心水)

    A. Stock Arbitraging 直接上代码: #include<cstdio> #include<cstring> #include<iostream> ...

随机推荐

  1. poj 3321(树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24954   Accepted: 7447 Descr ...

  2. 提高Android Studio运行、编译速度方案

    1.安装完成后启动卡死 刚刚打开studio就卡在gradle building的界面再也不动了(去连接墙外的网下载),那么这个时候我们就需要把这个联网下载操作屏蔽掉,找到studio安装目录,找到i ...

  3. PC网页js调用本地应用程序

    最近要现实一个在PC网页中实现点击按钮调用本地应用程序的功能 其实实现原理也非常简单, 首先注册一个本地注册表文件,指向本地应用程序路径 其次在网页中用js指向这个注册表文件,就可以实现网页调用本地应 ...

  4. Codeforces 632F Magic Matrix(bitset)

    题目链接  Magic Matrix 考虑第三个条件,如果不符合的话说明$a[i][k] < a[i][j]$ 或 $a[j][k] < a[i][j]$ 于是我们把所有的$(a[i][j ...

  5. iOS9.0 友盟分享详细过程

    一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了.然后在这个方法里面设置Key - (BOOL)application:( ...

  6. codevs——1048 石子归并 (区间DP)

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解       题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并 ...

  7. - > 动规讲解基础讲解六——编辑距离问题

    给定两个字符串S和T,对于T我们允许三种操作: (1) 在任意位置添加任意字符(2) 删除存在的任意字符(3) 修改任意字符 问最少操作多少次可以把字符串T变成S?  例如: S=  “ABCF”   ...

  8. Linux(三) 一些命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  9. 基于Bootstrap的页面排版知识

    标题: Bootstrap定义了所有HTML的标题样式,<h1>...<h6>标签或者在标签内加入.h1 class等可以得到一样的效果 效果: 副标题: 标签<smal ...

  10. 【POI】导出xls文件报错:The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook

    使用POI导出xls文件,由于数据过多,导致导出xls报错如下: The maximum number of cell styles was exceeded. You can define up t ...