Codeforces Round #375 (Div. 2)
A. The New Year: Meeting Friends
水
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
#define mem(x,y) memset(x, y, sizeof(x))
#define lson l,m,rt << 1
#define rson m+1,r,rt << 1 | 1
? a : gcd(b, a % b);}
int lcm(int a, int b){return a / gcd(a, b) * b;}
int main()
{
];
scanf(], &a[], &a[]);
sort(a, a + );
printf(] - a[]);
;
}
题意:此题是一道字符串题目,统计括号内的单词个数以及括号外最长的单词长度。
字符串的题目漏了考虑'\n'的结尾!!!
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
#define mem(x,y) memset(x, y, sizeof(x))
#define lson l,m,rt << 1
#define rson m+1,r,rt << 1 | 1
? a : gcd(b, a % b);}
int lcm(int a, int b){return a / gcd(a, b) * b;}
];
int main()
{
int len;
scanf("%d", &len);
scanf("%s", s);
, len_in = , len_out = , num_in = ,len_max = ;
; i < len; i++)
{
if(s[i] == '(')
{
flag1 = ;
len_max = max(len_max, len_out);
len_out = ;
continue;
}
if(flag1)
{
if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z') )
len_in++;
else if(s[i] == '_')
{
if(len_in) num_in++;
len_in = ;
}
else if(s[i] == ')')
{
flag1 = ;
if(len_in) num_in++;
len_in = ;
}
}
else
{
if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z') )
len_out++;
else if(s[i] == '_')
{
len_max = max(len_max, len_out);
len_out = ;
}
}
}
len_max = max(len_max, len_out);
printf("%d %d\n", len_max, num_in);
;
}
其实写复杂了,hhhhh。别人的
#include<cstdio>
#include <cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include <map>
using namespace std;
int main()
{
,len=,max=,num=;
];
scanf("%d",&n);
scanf("%s",ch);
;i==||ch[i-]!='\0';i++)
{
if(ch[i]=='_'||ch[i]=='('||ch[i]==')'||ch[i]=='\0')
{
&&max<len)
{
max=len;
}
&&len!=)
{
num++;
}
len=;
if(ch[i]=='(')
{
flag=;
}
else if(ch[i]==')')
{
flag=;
}
}
else
{
len++;
}
}
printf("%d %d",max,num);
;
}
这题意太迷了。读不懂。
题意:n*m的图里,‘.’为湖,‘*’为陆地,'.'在边界的是与大海相连(即不为湖),上下左右相连的为同一个湖或者同一片海,现在要求只留下k个湖,问要最少填多少个格子。
直接贪心+dfs就A了。
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
#define mem(x,y) memset(x, y, sizeof(x))
#define lson l,m,rt << 1
#define rson m+1,r,rt << 1 | 1
? a : gcd(b, a % b);}
int lcm(int a, int b){return a / gcd(a, b) * b;}
int n, m, k, ans, flag;
][];
][];
, , , -};
, -, , };
#define judge(x, y) 0 <= x && x < n && 0 <= y && y < m && vis[x][y] == 0
struct node
{
int x, y, s;
node(int xx, int yy, int ss){x = xx, y = yy, s = ss;}
bool operator < (const node& other)const
{
return s > other.s;
}
};
int dfs(int x, int y, int id)
{
;
;
vis[x][y] = ;
|| x == n - || y == || y == m - ) flag = ;
&& ma[x][y] == '.')
{
ma[x][y] = '*', ans++;
}
; i < ; i++)
{
int fx = x + dx[i], fy = y + dy[i];
if(judge(fx, fy) && ma[fx][fy] == '.')
{
s += dfs(fx, fy, id);
}
}
return s;
}
int main()
{
scanf("%d%d%d", &n, &m, &k);
; i < n; i++)
{
scanf("%s", ma[i]);
}
priority_queue<node>que;
; i < n; i++)
{
; j < m; j++)
{
&& ma[i][j] == '.')
{
flag = ;
);
if(t && flag) que.push(node(i, j, t));
}
}
}
mem(vis, );
ans = ;
while(que.size() > k)
{
node cur = que.top();que.pop();
dfs(cur.x, cur.y, );
}
printf("%d\n", ans);
; i < n; i++)
printf("%s\n", ma[i]);
;
}
题意:
给你一个n个点m条边的无向连通图,没有自环没有重边(图论题一定一定要记得考虑有没有自环和重边) ,然后让你给每条边规定方向,希望使得尽可能多的点拥有相同的入度与出度,让你输出满足这个条件的最大点数和每条边最后的定向。
题解:你想吧,一个连通图,如果存在奇数的度数的顶点,那么它的个数一定是偶数个,因为你想啊,连通图吧,度数=边数*2肯定是偶数,对吧。所以奇数度的顶点也一定是偶数个。那么把所有度数为奇数的顶点和一个新增顶点相连,则图上所有顶点的度数就都是偶数了,构成欧拉图,然后欧拉路径。ans数组记录路径。
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
#define mem(x,y) memset(x, y, sizeof(x))
#define lson l,m,rt << 1
#define rson m+1,r,rt << 1 | 1
? a : gcd(b, a % b);}
int lcm(int a, int b){return a / gcd(a, b) * b;}
int T, V, E;
+ ;
set<int>s[maxn_v];
vector<pair<int, int> >ans;
void init()
{
; i <= V; i++)
s[i].clear();
ans.clear();
}
void dfs(int u)
{
while(s[u].size())
{
int v = *s[u].begin();
s[u].erase(v);
s[v].erase(u);
ans.push_back(make_pair(u, v));
dfs(v);
}
}
int main()
{
scanf("%d", &T);
while(T--)
{
init();
scanf("%d%d", &V, &E);
; i < E; i++)
{
int u, v;
scanf("%d%d", &u, &v);
s[u].insert(v);
s[v].insert(u);
}
; i <= V; i++)
{
)
{
s[i].insert(V + );
s[V + ].insert(i);
}
}
printf(].size());
; i <= V; i++)
dfs(i);
; i < ans.size(); i++)
{
&& ans[i].second != V + )
printf("%d %d\n", ans[i].first, ans[i].second);
}
}
;
}
题意:给你一个n个顶点,m个条边的无向联通图,没有自环没有重边,给你两个顶点,和两个值,让你搞出任意一个生成树,使得两个顶点的度数,分别不超过这两个值。
Codeforces Round #375 (Div. 2)的更多相关文章
- Codeforces Round #375 (Div. 2) - D
题目链接:http://codeforces.com/contest/723/problem/D 题意:给定n*m小大的字符矩阵.'*'表示陆地,'.'表示水域.然后湖的定义是:如果水域完全被陆地包围 ...
- Codeforces Round #375 (Div. 2) - C
题目链接:http://codeforces.com/contest/723/problem/C 题意:给定长度为n的一个序列.还有一个m.现在可以改变序列的一些数.使得序列里面数字[1,m]出现次数 ...
- Codeforces Round #375 (Div. 2) - B
题目链接:http://codeforces.com/contest/723/problem/B 题意:给定一个字符串.只包含_,大小写字母,左右括号(保证不会出现括号里面套括号的情况),_分隔开单词 ...
- Codeforces Round #375 (Div. 2) - A
题目链接:http://codeforces.com/contest/723/problem/A 题意:在一维坐标下有3个人(坐标点).他们想选一个点使得他们3个到这个点的距离之和最小. 思路:水题. ...
- 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 ...
- 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 ...
- Codeforces Round #375 (Div. 2) D. Lakes in Berland 贪心
D. Lakes in Berland 题目连接: http://codeforces.com/contest/723/problem/D Description The map of Berland ...
- Codeforces Round #375 (Div. 2) B. Text Document Analysis 模拟
B. Text Document Analysis 题目连接: http://codeforces.com/contest/723/problem/B Description Modern text ...
- Codeforces Round #375 (Div. 2) A. The New Year: Meeting Friends 水题
A. The New Year: Meeting Friends 题目连接: http://codeforces.com/contest/723/problem/A Description There ...
- Codeforces Round #375 (Div. 2) Polycarp at the Radio 优先队列模拟题 + 贪心
http://codeforces.com/contest/723/problem/C 题目是给出一个序列 a[i]表示第i个歌曲是第a[i]个人演唱,现在选出前m个人,记b[j]表示第j个人演唱歌曲 ...
随机推荐
- Linux 远程复制文件
Linux 远程复制文件 如果想把机器A上面的dir目录下面的所有文件复制到机器B的dir目录下,我们可以使用nc命令来完成 在机器A的dir目录下面执行: tar -czf - * | nc -l ...
- ElasticSearch-5.0安装head插件
环境 Windows10企业版X64 JDK-1.8 ElasticSearch-5.0.0 node-v4.5.0-x64.msi git客户端 步骤 安装node到D盘.如D:\nodejs. 把 ...
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- Android 四大组件之Service
---恢复内容开始--- 1,Service的生命周期
- Android检测网络是否正常代码!
在Android开发中,如果该应用程序需要连接网络请求,那么最好我们先做一个检测网络是否在线的判断,否则程序容易出现卡死或FC等Bug,应该判断如果手机离线则弹出提示让用户检查网络,如果正常则继续执行 ...
- java表格的使用 单元格绘制二
JTable单元格是由单元格绘制器绘制出来的,这是一些执行TableCellRenderer接口的类.TableCellRenderer接口定义了唯一的getTableCellRendererComp ...
- 子类可以有跟父类中同名的方法,但是会重写父类中的方法,甚至是root class中的方法
/* 子类可以重写父类中的方法,甚至是root class中的方法,比如NSObeject 的new方法,但是后提示警告如下 Method is expected to return an insta ...
- [Machine Learning & Algorithm] 随机森林(Random Forest)
1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来 ...
- [SQL] SQL学习笔记之基础操作
1 SQL介绍 SQL 是用于访问和处理数据库的标准的计算机语言.关于SQL的具体介绍,我们通过回答如下三个问题来进行. SQL 是什么? SQL,指结构化查询语言,全称是 Structured Qu ...
- 聊聊Azure的安全性
本来没打算写这篇博文,毕竟感觉太理论化,不像做技术的人应该写的东西,但是作为一名售前,发现很多不了解Azure的客户,上来的第一个问题竟然就是Azure如何保证客户数据的安全性,我清楚记得我第一次被问 ...