A - The New Year: Meeting Friends

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<max(a,max(b,c)) - min(a,min(b,c)) <<endl;
    ;
}

B - Text Document Analysis

字符串暴力模拟,感觉还是需要一点技巧的,我写的太慢了。

#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <iostream>

using namespace std;
;
char a[N];
//37
//_Hello_Vasya(and_Petya)__bye_(and_OK)

bool is_s(char ch) {
    ) return true;
    return false;
}

int read(char str[]) {
    ;
    ;
    while (!is_s(str[idx++])) ans++;
    return ans;
}

int main() {
    //freopen("in.txt", "r", stdin);
    , ans2 = , n = ;
    scanf("%d", &n);
    scanf("%s", a);
    bool fg = false;
    ; i <= n;) {
        if (a[i] == '(') fg = true;
        if (a[i] == ')') fg = false;
        if (is_s(a[i])) {
            i++;
        } else {
            int tmp = read(a+i);
            if (!fg) ans1 = max(ans1, tmp);
            else ans2++;
            i += tmp;
        }
    }
    cout << ans1 << " " << ans2;
    ;
}

C - Polycarp at the Radio

应该也是sb暴力题,map乱搞的(队友写的==

#include <cstdio>
#include <map>
#include <queue>
using namespace std;
;
map<int, int> mp;
queue<int> q;
int a[maxn], n, m;
int main() {
    scanf("%d%d", &n, &m);
    ; i <= n; i++) scanf("%d", &a[i]), mp[a[i]]++;
    int ans = n / m;
    ; i <= m; i++) if (mp[i] < ans) q.push(i);
    ;
    while (!q.empty()) {
        int v = q.front(); q.pop();
        ; i <= n; i++) {
            if (a[i] > m || mp[a[i]] > ans) mp[a[i]]--, a[i] = v, mp[v]++, cnt++;
            if (mp[v] >= ans) break;
        }
    }
    printf("%d %d\n", ans, cnt);
    ; i <= n; i++) printf("%d%c", a[i], i==n?'\n':' ');
    ;
}

D - Lakes in Berland

简单搜索。因为数据小,随便暴力。

#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <queue>
#include <vector>

using namespace std;
;

char mp[N][N];
int vis[N][N], n, m, k;
][] = {, , , -, , , -, };

int dfs(int x, int y, int cnt) {
     || x >= n || y <  || y >= m) ;
    ;
    vis[x][y] = cnt;
    ;
    ; i < ; ++i) {
        ], y+dir[i][], cnt);
        ) {
            ) ans = -;
            else ans += tmp;
        }
    }
    return ans;
}

vector<pair<int, int> > g;

int main() {
    while (~scanf("%d%d%d", &n, &m, &k)) {
        ; i < n; ++i) scanf("%s", mp[i]);
        , tmp, ans = ;
        ; i < n; ++i)
            ; j < m; ++j)
                if (!vis[i][j] && mp[i][j] == '.')
                    ) g.push_back(make_pair(tmp, cnt));
        sort(g.begin(), g.end());
        tmp = g.size() - k;
        ; i < tmp; ++i) ans += g[i].first;
        printf("%d\n", ans);
        ; k < tmp; ++k)
            ; i < n; ++i)
                ; j < m; ++j)
                    if (vis[i][j] == g[k].second) mp[i][j] = '*';
        ; i < n; ++i) printf("%s\n", mp[i]);
    }
    ;
}

E. One-Way Reform

给一个无向图,要求把每个边都变成有向边,使尽可能多的点入度等于出度,问最多能满足多少个点,并输出每条边。(任意顺序)

感觉很厉害的一道题。

无向图存在欧拉回路的充要条件:一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。
有向图存在欧拉回路的充要条件:一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图。

首先可以知道奇数度的点是不可能到达要求的。找出奇数度的点,两两一对连接,记做虚边,这样就可以保证每个点的度数都是偶数,那么就可以找到一条欧拉回路,保证每个点入度等于出度。

因为总度数是偶数,所以奇数度的点一定是偶数个。

如果图不连通,对每一个连通图求欧拉回路就好了。

然后输出图中非虚边就ok了。

好难想到啊= =队友花了半天给我讲明白的……然后还是WA了好多好多次(我是有多蠢啊T^T

#include <bits/stdc++.h>
using namespace std;

;

struct Edge {
    int next, from, to, fg; // fg: 0,2未处理 1选 -1不选
} e[N*N];
int head[N], cntE;
void addedge(int u, int v, int fg) {
    e[cntE].to = v; e[cntE].from = u;
    e[cntE].next = head[u]; e[cntE].fg = fg;
    head[u] = cntE++;
}
int deg[N];

void dfs(int u) {
    for (int i = head[u]; ~i; i = e[i].next) {
        ) {
            e[i].fg = ;
            e[i^].fg = -;
            dfs(e[i].to);
        } ) {
            e[i].fg = e[i^].fg = -;
            dfs(e[i].to);
        }
    }
}

int main() {
    #ifndef ONLINE_JUDGE
       freopen("in.txt", "r", stdin);
    #endif // ONLINE_JUDGE

    int T, n, m, u, v;
    scanf("%d", &T);
    while (T--) {
        memset(head, -, ;
        memset(deg, , sizeof deg);
        scanf("%d%d", &n, &m);
        ; i < m; ++i) {
            scanf("%d%d", &u, &v);
            addedge(u, v, );
            addedge(v, u, );
            deg[u]++, deg[v]++;
        }
        , odd = ;
        ; i <= n; ++i) {
            ) {
                ++odd;
                ), addedge(i, last, ), last = ;
                else last = i;
            }
        }
        ; i <= n; ++i) dfs(i);
        printf("%d\n", n - odd);
        ; i < cntE; ++i)
            ) printf("%d %d\n", e[i].from, e[i].to);
    }
    ;
}

F. st-Spanning Tree

挖坑待填……

Codeforces Round #375 (Div. 2) ABCDE的更多相关文章

  1. Codeforces Round #261 (Div. 2)[ABCDE]

    Codeforces Round #261 (Div. 2)[ABCDE] ACM 题目地址:Codeforces Round #261 (Div. 2) A - Pashmak and Garden ...

  2. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  3. Codeforces Round #375 (Div. 2) - D

    题目链接:http://codeforces.com/contest/723/problem/D 题意:给定n*m小大的字符矩阵.'*'表示陆地,'.'表示水域.然后湖的定义是:如果水域完全被陆地包围 ...

  4. Codeforces Round #375 (Div. 2) - C

    题目链接:http://codeforces.com/contest/723/problem/C 题意:给定长度为n的一个序列.还有一个m.现在可以改变序列的一些数.使得序列里面数字[1,m]出现次数 ...

  5. Codeforces Round #375 (Div. 2) - B

    题目链接:http://codeforces.com/contest/723/problem/B 题意:给定一个字符串.只包含_,大小写字母,左右括号(保证不会出现括号里面套括号的情况),_分隔开单词 ...

  6. Codeforces Round #375 (Div. 2) - A

    题目链接:http://codeforces.com/contest/723/problem/A 题意:在一维坐标下有3个人(坐标点).他们想选一个点使得他们3个到这个点的距离之和最小. 思路:水题. ...

  7. Codeforces Round #460 (Div. 2) ABCDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8397685.html 2018-02-01 $A$ 题意概括 你要买$m$斤水果,现在有$n$个超市让你选择. ...

  8. Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树

    F. st-Spanning Tree 题目连接: http://codeforces.com/contest/723/problem/F Description You are given an u ...

  9. Codeforces Round #375 (Div. 2) E. One-Way Reform 欧拉路径

    E. One-Way Reform 题目连接: http://codeforces.com/contest/723/problem/E Description There are n cities a ...

随机推荐

  1. Git SourceTree 冲突解决方案

    Git现在越来越火,很多人都从Svn迁移到Git上面,Git让我们更加与世界接轨,不再是"局域网"的程序猿,特别是掌握了Git之后,会发现它真的很好用,本文对Git中比较烦人的冲突 ...

  2. [转载]百度编辑器-Ueditor使用

    前段时间发表过一篇关于“KindEditor在JSP中使用”的博文.这几天在沈阳东软进行JavaWeb方面的实习工作,在一个CMS系统的后台和博客板块中又要用到文本编辑器,突然发现了这个——百度编辑器 ...

  3. hadoop高速扫盲帖,从零了解hadoop

    1.MapReduce理论简单介绍 1.1 MapReduce编程模型 MapReduce採用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完毕 ...

  4. Django 视图层

    URL映射 1.分布式url映射 include()函数提供分布式url映射功能,使URL映射可以被编写在多个url.py文件中 from django.conf.urls import url fr ...

  5. mysql配置外部允许外部连接

    1. 登录到mysql mysql -u root -p 2.进入到mysql 库中 use mysql 3.执行语句 update user set host=‘%’ where user=‘roo ...

  6. M3U8文件

    M3U本质上说不是音频文件,它是音频文件的列表文件,是纯文本文件.你下载下来打开它,播放软件并不是播放它,而是根据它的记录找到网络地址进行在线播放. M3U文件的大小很小,也就是因为它里面没有任何音频 ...

  7. Delphi的程序单元、结构、基础知识(转)

    Object Passal的程序结构很特殊,与其它语言如C++,Object Windows等结构都不同.一个Delphi程序由多个称为单元的源代码模块组成.使用单元可以把一个大型程序分成多个逻辑相关 ...

  8. dns隧道 dns2tcpd

    有些网络的防火墙设置只允许端口53的UDP流量,就不能通过tcp搭建隧道,这种情况下我们可以通过UDP搭建DNS隧道,通过搭建一个DNS服务器委派的子域,这个子域因为使我们自己搭建的主机,这时候就可以 ...

  9. TLS/SSL测试工具

    常用的有SSLScan,我用的是OpenSSL的: openssl s_client -connect www.baidu.com:443

  10. httpclient获取响应实体和信息的封装方法(解耦更新)

    转自:https://blog.csdn.net/fhaohaizi/article/details/77850302 2018年07月19日更新,主要是解耦之后方法很多地方发生了变化,httpcli ...