Codeforces Round #294 (Div. 2)

php中文网
发布: 2016-06-07 15:44:20
原创
1057人浏览过

519A A and B and Chess /*********************************************** * Author: fisty * Created Time: 2015/2/28 21:12:09 * File Name : A.cpp *********************************************** */#include iostream#include cstring#include dequ

519A

A and B and Chess

/***********************************************
 * Author: fisty
 * Created Time: 2015/2/28 21:12:09
 * File Name   : A.cpp
 *********************************************** */
#include <iostream>
#include <cstring>
#include <deque>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <cstdio>
#include <bitset>
#include <algorithm>
using namespace std;
#define Debug(x) cout << #x << " " << x <<endl
#define Memset(x, a) memset(x, a, sizeof(x))
const int INF = 0x3f3f3f3f;
typedef long long LL;
typedef pair<int, int> P;
#define FOR(i, a, b) for(int i = a;i < b; i++)

int _white(char c){
    int n;
    switch(c){
        case 'Q': n = 9;break;
        case 'R': n = 5;break;
        case 'B': n = 3;break;
        case 'N': n = 3;break;
        case 'P': n = 1;break;
        dafault: n = 0;break;
    }
    return n;
}

int _black(char c){
    int n;
    switch(c){
        case 'q': n = 9;break;
        case 'r': n = 5;break;
        case 'b': n = 3;break;
        case 'n': n = 3;break;
        case 'p': n = 1;break;
        dafault: n = 0;break;
    }
    return n;
}
int main() {
    //freopen("in.cpp", "r", stdin);
    cin.tie(0);
    ios::sync_with_stdio(false);
    string s;
    int white = 0;int black = 0;
    FOR(i, 0, 8){      
        cin >> s;
        for(int j = 0;j < s.length(); j++){
            if(s[j] <= 'Z' && s[j] >= 'A'){
                white += _white(s[j]);
            }else if(s[j] <= 'z' && s[j] >= 'a'){
                black += _black(s[j]);
            }
        }
    }
    //Debug(white);
    //Debug(black);
    if(white > black){
        cout << "White" << endl;
    }else if(white < black){
        cout << "Black" << endl;
    }else{
        cout << "Draw" << endl;
    }
    return 0;
}
登录后复制
519B

A and B and Compilation Errors

A和B 比较,B和C比较。全部排序,遇到第一个不同数字输出并跳出比较
/***********************************************
 * Author: fisty
 * Created Time: 2015/2/28 21:43:51
 * File Name   : 294B.cpp
 *********************************************** */
#include <iostream>
#include <cstring>
#include <deque>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <cstdio>
#include <bitset>
#include <algorithm>
using namespace std;
#define Debug(x) cout << #x << " " << x <<endl
#define Memset(x, a) memset(x, a, sizeof(x))
const int INF = 0x3f3f3f3f;
typedef long long LL;
typedef pair<int, int> P;
#define FOR(i, a, b) for(int i = a;i < b; i++)
#define MAX_N 100100 
int a[MAX_N], b[MAX_N], c[MAX_N];
int main() {
    //freopen("in.cpp", "r", stdin);
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n;   
    cin >> n;
    Memset(a, 0);
    Memset(b, 0);
    Memset(c, 0);
    FOR(i, 0, n){
        cin >> a[i];
    }
    FOR(i, 0, n-1){
        cin >> b[i];
    }
    FOR(i, 0, n-2){
        cin >> c[i];
    }
    sort(a, a + n);
    sort(b, b + n-1);
    sort(c, c + n-2);
    for(int i = 0;i < n; i++){
        if(a[i] != b[i]){
            cout << a[i] << endl;
            break;
        }
    }
    for(int i = 0;i < n-1; i++){
        if(b[i] != c[i]){
            cout << b[i] << endl;
            break;
        }
    }
    return 0;
}
登录后复制


519C

A and B and Team Training

如果n > m 那么采取 n 取两个m 取一个的方案,


/***********************************************
 * Author: fisty
 * Created Time: 2015/2/28 21:54:12
 * File Name   : 294C.cpp
 *********************************************** */
#include <iostream>
#include <cstring>
#include <deque>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <cstdio>
#include <bitset>
#include <algorithm>
using namespace std;
#define Debug(x) cout << #x << " " << x <<endl
#define Memset(x, a) memset(x, a, sizeof(x))
const int INF = 0x3f3f3f3f;
typedef long long LL;
typedef pair<int, int> P;
#define FOR(i, a, b) for(int i = a;i < b; i++)
#define MAX_N 8000
int main() {
    //freopen("in.cpp", "r", stdin);
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n, m;   
    cin >> n >> m;
    int ans = 0;
    while(n >= 1 && m >= 1 && m + n >= 3){
        ans++;
        if(n > m){
            n -= 2;
            m--;
        }else{
            m -= 2;
            n--;
        }
    }
    cout << ans << endl;
    return 0;
}
登录后复制

519D

A and B and Interesting Substrings

首先维护前缀和,mp[i][v]表示以字符i结束的前缀和为v出现了几次

根据题目要求,如果字符u 和 v 中间值为零 那么两者的前缀和相等.

/***********************************************
 * Author: fisty
 * Created Time: 2015/2/28 22:46:13
 * File Name   : 294D.cpp
 *********************************************** */
#include <iostream>
#include <cstring>
#include <deque>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <cstdio>
#include <bitset>
#include <algorithm>
using namespace std;
#define Debug(x) cout << #x << " " << x <<endl
#define Memset(x, a) memset(x, a, sizeof(x))
const int INF = 0x3f3f3f3f;
typedef long long LL;
typedef pair<int, int> P;
#define FOR(i, a, b) for(int i = a;i < b; i++)
#define MAX_N 100000
string s;
int a[30];
map<LL, int> mp[MAX_N];
int main() {
    //freopen("in.cpp", "r", stdin);
    cin.tie(0);
    ios::sync_with_stdio(false);
    for(int i = 0;i < 26; i++){
        cin >> a[i];
    }
    cin >> s;
    int n = s.length();
    LL ans = 0;
    LL v = 0;
    for(int i = 0;i < n; i++){
        ans += mp[s[i]-'a'][v];
        v += a[s[i]-'a'];
        mp[s[i]-'a'][v]++;
    }
    cout << ans << endl;
    return 0;
}
登录后复制



最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号