ICPC 2018 焦作区域赛
// 2019.10.7 练习赛
// 赛题来源:2018 ICPC 焦作区域赛
// CF链接:http://codeforces.com/gym/102028
A Xu Xiake in Henan Province
题目大意
有四个旅游地,给出 n 个人去四个地方的旅游次数,根据他去过旅游地个数输出相应等级。
思路
签到题。。。(队友在干嘛呀,10min过去了600人交题了啊我们怎么还没AC
AC代码
#include<iostream>
#include<cstdio>
using namespace std;
const char* ans[5] = {
"Typically Otaku","Eye-opener", "Young Traveller",
"Excellent Traveller", "Contemporary Xu Xiake"};
int main() {
int T; cin>>T;
while(T--) {
int cnt = 0;
for(int i=0;i<4;i++) {
int A; scanf("%d", &A);
if(A>0) ++cnt;
}
printf("%s\n", ans[cnt]);
}
return 0;
}
D Keiichi Tsuchiya the Drift King
题目大意
如图,求最小的赛车车道宽度 w ,使赛车能够保证车头与内道相切的情况下漂移过弯。
思路
很容易推导出,车尾与外车道接触时得到最小宽度 \(w = \sqrt{(b^2+(a+r)^2} - r\) 。
为什么弯道角度没有用上呢?原来出弯道时车尾可能还没与外后侧圆弧赛道接触,这时 w 能取得更小值。
AC代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const double pi = acos(-1);
int main() {
int T; cin>>T;
double a, b, r, d;
while(T--) {
scanf("%lf %lf %lf %lf", &a, &b, &r, &d);
d = d/180*pi;
double w = sqrt(b*b+(a+r)*(a+r));
double ang = acos((a+r)/w);
if(d>ang)
printf("%.10lf\n", w-r);
else
printf("%.10lf\n", w*cos(ang-d)-r);
}
return 0;
}
EE Resistors in Parallel
题目大意
对于第 n 号电阻,电阻值为 n 的全部非平方因子电阻值的并联,(若含有平方因子,则为无穷大,相当于没有贡献)。给定 n<=10^100,求其中最小的电阻。
思路
简单分析可以发现组成的电阻值一定是一组互质的小电阻及其乘积,如 {1,2}, {1, 3}, {1, 2, 3, 6}, {1, 2, 3, 5, 6, 15, 30} ...
打表发现结果为 \(p_1p_2...p_k \over (p_1+1)(p_2+1)...(p_k+1)\) , 其中 \(p_i\) 为素数。
由于 n 非常大,Python
大法好。
AC代码
def gcd(a, b):
if b==0:
return a
return gcd(b, a%b)
vis = [False]*1000
primes = []
for i in range(2, 1000):
if not vis[i] :
primes.append(i)
for j in range(2*i, 1000, i):
vis[j] = True
T = int(input().rstrip())
for i in range(T):
n = int(input())
fz = 1
fm = 1
k = 0
while fz*primes[k]<=n:
fz *= primes[k]
fm *= primes[k]+1
k = k+1
g = gcd(fz, fm)
print("{}/{}".format(fz//g, fm//g))
# print("%d/%d"% (fz//g, fm//g))
F Honeycomb
题目大意
给定一个蜂巢图形,求从起点 S 到终点 T 的最短路的路径长度。
BFS跑一下就完了。
// 比赛时候被PDF坑了,以为空格要自己补上。。浪费时间。。
AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<map>
#define mp make_pair
using namespace std;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
int len[4*1024];
char mat[4*1024][6*1024];
int n, m;
int sx, sy, ex, ey;
map<pii, bool> vis;
queue<piii> q;
const int dx[] = {-1, 1, -1, 1, 2, -2};
const int dy[] = {-3, -3, 3, 3, 0, 0};
int bfs() {
vis.clear();
while(q.size()) q.pop();
q.push(mp(mp(sx, sy), 1));
vis[mp(sx, sy)] = 1;
while(q.size()) {
piii now = q.front(); q.pop();
int x = now.first.first, y = now.first.second;
if(x==ex && y==ey) {
return now.second;
}
for(int i=0;i<6;i++) {
int nx = x+dx[i], ny = y+dy[i];
// if(nx>=1 && ny>=1 && nx<=4*n+3 && ny<=len[nx] && mat[nx][ny]==' ') {
if(mat[nx][ny]==' ') {
pii next = mp(nx+dx[i], ny+dy[i]);
if(vis.find(next)==vis.end()) {
q.push(mp(next, now.second+1));
vis[next] = 1;
}
}
}
}
return -1;
}
int main() {
int T; cin>>T;
while(T--) {
scanf("%d %d", &n, &m);
getchar();
for(int i=1;i<=4*n+3;i++) {
gets(mat[i]+1);
len[i] = strlen(mat[i]+1);
for(int j=1;j<=len[i];j++) {
if(mat[i][j]=='S') {
sx = i, sy = j;
} else if(mat[i][j]=='T') {
ex = i, ey = j;
}
}
}
printf("%d\n", bfs());
}
return 0;
}
I Distance
题目大意
数轴上有 n 个点, 求分别取 k = 1~n个点,使取得的点两两之间距离和最大,输出最大值。
思路
贪心法。交替取两端的点,能使每步都能取到最大值。
(只需要维护前缀和与后缀和,我sb了在那写树状数组没调出来扔给队友,队友WA了自闭了又还给我)
AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxn = 100100;
int n;
ll arr[maxn];
int main() {
int T; cin>>T;
while(T--) {
scanf("%d", &n);
arr[1] = 0;
for(int i=2;i<=n;i++) {
scanf("%d", &arr[i]);
arr[i] += arr[i-1];
}
arr[1+n] = 0;
int l = 0, r = 0;
ll ans = 0, left = 0, right = 0;
for(int i=1;i<=n;i++) {
if(i%2==1) {
// cout<<arr[l+1]<<endl;
ans += l*arr[l+1] - left + right - r*arr[l+1];
left += arr[l+1];
l++;
}
else {
// cout<<arr[n-r]<<endl;
ans += l*arr[n-r] - left + right - r*arr[n-r];
right += arr[n-r];
r++;
}
printf("%lld%c", ans, i==n?'\n':' ');
}
}
return 0;
}
ICPC 2018 焦作区域赛的更多相关文章
- ICPC 2018 亚洲横滨赛 C Emergency Evacuation(暴力,贪心)
ICPC 2018 亚洲横滨赛 C Emergency Evacuation 题目大意 你一个车厢和一些人,这些人都坐在座位上,求这些人全部出去的时间最小值 Solution 题目咋说就咋做 直接模拟 ...
- 2018ACM-ICPC焦作区域赛【反思总结】
摸银结束回来,整个人都轻松了. 自CCPC打铁以来的这两个月真的太痛苦了. 俱乐部退役的退役停训的停训,好冷清啊. 前期切题很稳,前四题两个小时1A. 过了四题之后好像心态有点飘,然后开题就慢了,想题 ...
- 2018 ACM-ICPC 焦作区域赛 E Resistors in Parallel
Resistors in Parallel Gym - 102028E 吐槽一下,网上搜索的题解一上来都是找规律,对于我这种对数论不敏感的人来说,看这种题解太难受了,找规律不失为一种好做法,但是题解仅 ...
- 2017 ICPC/ACM 沈阳区域赛HDU6228
Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Subm ...
- 2017 ICPC/ACM 沈阳区域赛HDU6223
Infinite Fraction Path Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java ...
- 2018焦作网络赛Mathematical Curse
题意:开始有个数k,有个数组和几个运算符.遍历数组的过程中花费一个运算符和数组当前元素运算.运算符必须按顺序花费,并且最后要花费完.问得到最大结果. 用maxv[x][y]记录到第x个元素,用完了第y ...
- 2018焦作网络赛Give Candies
一开始忽略了欧拉定理指数部分是modphi(n-1)没有memset,减法后面没加0:
- 2018焦作网络赛 - Poor God Water 一道水题的教训
本题算是签到题,但由于赛中花费了过多的时间去滴吧格,造成了不必要的浪费以及智商掉线,所以有必要记录一下坑点 题意:方格从1到n,每一格mjl可以选择吃鱼/巧克力/鸡腿,求走到n格时满足 1.每三格不可 ...
- ICPC 2018 南京网络赛 J Magical Girl Haze(多层图最短路)
传送门:https://nanti.jisuanke.com/t/A1958 题意:n个点m条边的路,你有k次机会将某条路上的边权变为0,问你最短路径长度 题解:最短路变形,我们需要在常规的最短路上多 ...
随机推荐
- NX二次开发-使用MFC对话框不能用UF_UI_select等函数解决方法
VC/MFC调用UG Dialog要进入加锁状态 加锁 UF_UI_lock_ug_access ( UF_UI_FROM_CUSTOM ); 此处为UF_UI_select的函数 解锁 UF_UI_ ...
- App响应式布局
1.手机的响应式布局,所有的单位用rem来表示. 如:设计稿的宽度是750,则html标签的font-size=屏幕宽度/7.5.那么在网页中的尺寸 = 设计高上实际的尺寸/100. 把下面的代码作为 ...
- linux安装jrockit 1.6
文章目录 下载 安装 配置环境变量 下载 https://download.csdn.net/download/wthn163/10631876?utm_source=bbsseo 安装 将.bin结 ...
- 改变IntelliJ IDEA 中的system和config/plugins的默认C盘的路径
1,问题,在为idea在线安装插件时,如JProfiler,会默认安装到C盘,而本人则是希望安装到软件所在的D盘目录下,那么如何修改呢: C:\Users\xxx\.IntelliJIdea\conf ...
- 拾遗:使用 systemd-journald 管理 Docker 容器日志
在 docker.service 文件中的 ExecStart 字段中,添加(或:docker run --log-driver=journald): --log-driver=journald \ ...
- java8如何对List<Bean>进行去重和覆盖
背景:有一批数据源从kafka给过来,接收到后需要处理,然后入库,我们用一个线程消费下来,一次消费30000条, 按照对象的概念,可以用List<Person>来表示,因为某种原因,需要根 ...
- mysql(自动添加系统时间)timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1.CURRENT_TIMESTAMP 当要向 ...
- CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数
题目大意: 求n!在b进制下末尾有多少个0 https://blog.csdn.net/qq_40679299/article/details/81167283 一个数在十进制下末尾0的个数取决于10 ...
- 如何让contenteditable元素只能输入纯文本
本文出自张旭鑫博客,要知详情,请戳右侧地址:http://www.zhangxinxu.com/wordpress/?p=5120 一.温故而知新 很多年以前,稍等,让我搜一下contentedita ...
- vue组件的调用方式
vue中一般都会把公共内容作为一个组件去布局,但是如何引用自定义的组件呢?下面就是vue调用自定义组件的方式,主要代码如下: <template> <div> <span ...