AISing Programming Contest 2019 Solution
A - Bulletin Board
签到。
#include <bits/stdc++.h>
using namespace std; int main()
{
int n, h, w;
while (scanf("%d%d%d", &n, &h, &w) != EOF)
{
printf("%d\n", (n - h + ) * (n - w + ));
}
return ;
}
B - Contests
签到。
#include <bits/stdc++.h>
using namespace std; #define N 110
int n, a, b, p[N]; bool check(int x)
{
if (n - x + <= x) return false;
if (p[x] > a) return false;
if (p[n - x + ] <= b) return false;
int cnt = ;
for (int i = x + , j = ; j <= x && i <= n - x; ++i)
{
if (p[i] > b) break;
if (p[i] > a)
{
++j;
++cnt;
}
}
return cnt >= x;
} int main()
{
while (scanf("%d", &n) != EOF)
{
scanf("%d%d", &a, &b);
for (int i = ; i <= n; ++i) scanf("%d", p + i);
sort(p + , p + + n);
int l = , r = n, res = ;
while (r - l >= )
{
int mid = (l + r) >> ;
if (check(mid))
{
l = mid + ;
res = max(res, mid);
}
else
r = mid - ;
}
printf("%d\n", res);
}
return ;
}
C - Alternating Path
Solved
题意:
起点选择一个黑点,终点选择一个白点,如果起点到终点之间存在一条路径是黑、白、黑、白 这样的
那么这一对点就合法,给出一张图,求有多少对合法点对
思路:
将每个点与四周和自己颜色不同的点用并查集并起来,然后同一个连通块的任意一堆黑点和白点都是合法的
#include <bits/stdc++.h>
using namespace std; #define ll long long
#define N 410
char G[N][N];
int n, m;
int pre[N * N], tot[N * N];
int find(int x) { return pre[x] == ? x : pre[x] = find(pre[x]); }
void join(int u, int v)
{
int fu = find(u), fv = find(v);
if (fu != fv) pre[fu] = fv;
}
int f(int x, int y) { return (x - ) * m + y; }
int Move[][] =
{
-, ,
,-,
};
bool ok(int x, int y)
{
if (x < || x > n || y < || y > m) return false;
return true;
} int main()
{
while (scanf("%d%d", &n, &m) != EOF)
{
for (int i = ; i <= n; ++i) scanf("%s", G[i] + );
memset(pre, , sizeof pre);
memset(tot, , sizeof tot);
for (int i = ; i <= n; ++i) for (int j = ; j <= m; ++j)
{
for (int k = ; k < ; ++k)
{
int nx = i + Move[k][];
int ny = j + Move[k][];
if (ok(nx, ny) && G[i][j] != G[nx][ny]) join(f(i, j), f(nx, ny));
}
}
for (int i = ; i <= n; ++i) for (int j = ; j <= m; ++j) if (G[i][j] == '.')
++tot[find(f(i, j))];
ll res = ;
for (int i = ; i <= n; ++i) for (int j = ; j <= m; ++j) if (G[i][j] == '#') res += tot[find(f(i, j))];
printf("%lld\n", res);
}
return ;
}
D - Nearest Card Game
Unsolved.
题意:
有一个游戏,$B先选择一个整数x$
接着开始游戏
- A在剩下的数中选择最大的
- B在剩下的数中选择最接近x的,如果有多个,选择最小的那个
每次询问给出一个x,根据这个策略,求A最后选取的数的总和
AISing Programming Contest 2019 Solution的更多相关文章
- AISing Programming Contest 2019 翻车记
A:签到. #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> ...
- 【AtCoder】AISing Programming Contest 2019
本来以为是1199rated的..仔细一看发现是1999,所以就做了一下 这场涨分很轻松啊...为啥又没打 等pkuwc考完我一定打一场atcoder(咕咕咕,咕咕咕,咕咕咕咕咕咕咕~) 但是其实我思 ...
- KEYENCE Programming Contest 2019 Solution
A - Beginning 签到. #include <bits/stdc++.h> using namespace std; int main() { ]; while (scanf(& ...
- AtCoder AISing Programming Contest 2019 Task D. Nearest Card Game
题目分析在代码注释里. int main() { #if defined LOCAL && !defined DUIPAI ifstream in("main.in" ...
- [AtCoder] NIKKEI Programming Contest 2019 (暂缺F)
[AtCoder] NIKKEI Programming Contest 2019 本来看见这一场的排名的画风比较正常就来补一下题,但是完全没有发现后两题的AC人数远少于我补的上一份AtCoder ...
- [AtCoder] Yahoo Programming Contest 2019
[AtCoder] Yahoo Programming Contest 2019 很遗憾错过了一场 AtCoder .听说这场是涨分场呢,于是特意来补一下题. A - Anti-Adjacency ...
- Yahoo Programming Contest 2019.E.Odd Subrectangles(思路 线性基)
题目链接 \(Description\) 给定一个\(n\times m\)的\(01\)矩阵.求任意选出\(r\)行.\(c\)列(共\(2^{n+m}\)种方案),使得这\(r\)行\(c\)列的 ...
- ACM ICPC, Amman Collegiate Programming Contest (2018) Solution
Solution A:Careful Thief 题意:给出n个区间,每个区间的每个位置的权值都是v,然后找长度为k的区间,使得这个区间的所有位置的权值加起来最大,输出最大权值, 所有区间不重叠 思路 ...
- AtCoder NIKKEI Programming Contest 2019 C. Different Strokes (贪心)
题目链接:https://nikkei2019-qual.contest.atcoder.jp/tasks/nikkei2019_qual_C 题意:给出 n 种食物,Takahashi 吃下获得 a ...
随机推荐
- swift - UIAlertView 的用法
1,创建一个alertview,并带有“确定”和“取消”两个按钮 (注:在这里使用alertview,会报警告,那是因为从ios 8 以后,建议使用UIAlertviewController) //警 ...
- 设置MySQL的字符编码
前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloable的.永久性改变的. ...
- Spring学习笔记--声明一个简单的Bean
spring依赖的maven dependencyhttp://mvnrepository.com/artifact/org.springframework 在pom.xml中添加如下依赖: < ...
- <转>Logistic回归总结
转自http://blog.csdn.net/dongtingzhizi/article/details/15962797 当我第一遍看完台大的机器学习的视频的时候,我以为我理解了逻辑回归,可后来越看 ...
- Synergy 多系统共享鼠标键盘 Windows 和 Mac 完全配置教程
公司终于配上了双主机双系统双屏幕,编码是爽了,但是桌上的键盘有多了一套,有没有什么软件能够在不同的电脑之间共享键盘和鼠标呢?后来发下了Synergy这款软件.不仅免费而且开源(支持下). 让办公桌上的 ...
- vscode新建html,没有模板
首先,在文件夹下右击--新建--index.html 输入! 按tab键 完成!
- EUI组件之ProgressBar
一.ProgressBar常规使用 拖动一个progressbar到exml 代码中使用 /** * 主页场景 * @author chenkai 2018/5/26 */ class HomeSce ...
- ios unrecognized selector sent to instance出现的原因和解决方案
概述:造成unrecognized selector sent to instance iphone,大部分情况下是因为对象被提前release了,在你心里不希望他release的情况下,指针还在,对 ...
- Centos6.8下搭建SVN服务器
1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一 ...
- Oracle正在执行和执行过的SQL语句
1.正在执行的SQL select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a ...