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. java实现udp发送端和接收端

    发送端: package demo02; import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat ...

  2. 牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)

    H.武 链接:https://www.nowcoder.com/acm/contest/86/H 这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己 ...

  3. Needle in a haystack: efficient storage of billions of photos 【转】

    转自09年的blog,因为facebook在国内无法访问,故此摘录. The Photos application is one of Facebook’s most popular features ...

  4. usaco-Cow Pedigrees

    题意: 求出n个节点可以构成多少种高为h的二叉树.分析: 设左子树节点数x,右子树节点数为n-x-1,函数dp表示满足条件的树的个数,则dp(n)=dp(x)*(n-x-1). 对于未知数h,dp[n ...

  5. Find Median from Data Stream - LeetCode

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  6. 洛谷 P4256 公主の#19准备月考

    题目背景 公主在玩完游戏后,也要月考了.(就算是公主也要月考啊QWQ) 题目描述 公主的文综太差了,全校排名1100+(全校就1100多人),她分析了好久,发现她如果把所有时间放在选择题上,得分会比较 ...

  7. Java中final和static关键字总结

    1.final: final关键字可用于类.方法.变量前. final修饰的类不可被继承,例如java.lang.Math就是一个 final类,不可被继承. final修饰变量,在显示初始化后不可改 ...

  8. jquery中的数据传输

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  9. 一入python深似海--range()、list与for

    range使用方法 使用python的人都知道range()函数非常方便,今天再用到他的时候发现了非常多曾经看到过可是忘记的细节. 这里记录一下: range(1,5)#代表从1到5(不包括5) [1 ...

  10. ElasticSearch查询max_result_window问题处理

    需要出一份印地语文章的表,导出规则为: 1.所有印地语(包含各种颜色,各种状态)的文章 2.阅读数大于300 3.按照阅读推荐比进行排序,取前3000篇文章 说明: 1.文章信息,和阅读推荐数量在两个 ...