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 ...
随机推荐
- Python 数据类型:数值
数值类型分为:整型 .长整型 .浮点型 .复数型 整型示例: In [1]: a = 100 # 整型也就是整数类型 In [2]: type(a) # 整型的英文缩写为int Out[2]: int ...
- round()
round() 用于对一个数值进行四舍五入,如果接收两个参数,则第二个参数表示保留多少位小数 In [1]: round(1.5324) Out[1]: 2.0 In [2]: round(1.532 ...
- PHP和shell脚本遍历目录及其下子目录
用shell写了个递归遍历目录的脚本,本脚本实现递归遍历指定目录,打印目录下的文件名(全路径). #!/bin/sh function scandir() { local cu ...
- cocos2d-x游戏引擎核心之十二——3.x新特性
v3.0 亮点 使用 C++(C++11) 的特性取代了 Objective-C 的特性 优化了 Labels 优化了渲染器(比 v2.2 更快) 新的事件分发机制 物理引擎集成 新的 UI 对象 J ...
- IOS视频播放器的制作
利用自带MPMoviePlayerController来实现视频播放,首先要在项目中导入MediaPlayer.Framework框架包. 在视图控制器中 #import "MediaPla ...
- poj_1236 强连通分支
题目大意 有N个学校,这些学校之间用一些单向边连接,若学校A连接到学校B(B不一定连接到A),那么给学校A发一套软件,则学校B也可以获得.现给出学校之间的连接关系,求出至少给几个学校分发软件,才能使得 ...
- IOS深入学习(20)之Object modeling
1 前言 本节简单的介绍了对象建模,以及需要注意的事项. 2 详述 对象建模是对设计通过一个面向对象应用检测和操作服务的对象或者类的加工.许多模型技术是可能的:Cocoa开发环境不推荐歧义性. 典型地 ...
- weblogic新漏洞学习cve-2017-10271
一.原理: 很明显啦,readobject又出来背锅了,一个XML的反序列化漏洞导致的命令执行. 具体原理我看不懂java代码的我也只能学习别人的分析.给出一篇参考文章,写的非常详细: 漏洞原理 二. ...
- go练习3 --map的操作
func T2_1() { // 键值string , 值 int 类型 m1 := map[string]int{} //添加一个元素 m1["str1&q ...
- LoadRunner 11 安装
下载地址:http://www.ddooo.com/softdown/61971.htm#dltab LoadRunner是一款专业级别的应用负载测试工具,它可以模拟上千万用户对企业应用进行真实的负载 ...