题解——Codeforces Round #507 (based on Olympiad of Metropolises) T1 (模拟)
暴力模拟即可
就是情况略多
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int n,a,b,num[],pos,ans=;
int main(){
scanf("%d %d %d",&n,&a,&b);
for(int i=;i<=n;i++)
scanf("%d",&num[i]);
if(n%==){
pos=n/+;
if(num[pos]==)
ans+=min(a,b);
for(int i=pos-,j=pos+;i>=;i--,j++){
if(num[i]==num[j]&&num[i]!=&&num[j]!=)
continue;
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
printf("-1");
return ;
}
else{
ans+=a;
}
}
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
printf("-1");
return ;
}
else{
ans+=b;
}
}
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
ans+=b;
}
else if(num[j]==){
ans+=a;
}
}
else if(num[i]==num[j]&&num[i]==&&num[j]==){
ans+=min(a,b)*;
}
}
}
else{
pos=n/;
for(int i=pos,j=pos+;i>=;i--,j++){
if(num[i]==num[j]&&num[i]!=&&num[j]!=)
continue;
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
printf("-1");
return ;
}
else{
ans+=a;
}
}
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
printf("-1");
return ;
}
else{
ans+=b;
}
}
else if(num[i]!=num[j]&&num[i]==){
if(num[j]==){
ans+=b;
}
else if(num[j]==){
ans+=a;
}
}
else if(num[i]==num[j]&&num[i]==&&num[j]==){
ans+=min(a,b)*;
}
}
}
printf("%d",ans);
}
题解——Codeforces Round #507 (based on Olympiad of Metropolises) T1 (模拟)的更多相关文章
- 题解——Codeforces Round #507 (based on Olympiad of Metropolises) T2(模拟)
T2还是模拟 枚举一下第一个放哪里 然后贪心的反转即可 虽然我也不会证,但是这题肯定有解qwq #include <cstdio> #include <algorithm> # ...
- Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
A. Optimal Currency ExchangeAndrew was very excited to participate in Olympiad of Metropolises. Days ...
- [题解] Codeforces Round #549 (Div. 2) B. Nirvana
Codeforces Round #549 (Div. 2) B. Nirvana [题目描述] B. Nirvana time limit per test1 second memory limit ...
- Codeforces Round #367 (Div. 2) B. Interesting drink (模拟)
Interesting drink 题目链接: http://codeforces.com/contest/706/problem/B Description Vasiliy likes to res ...
- 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) B】Shashlik Cooking
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 翻转一次最多影响2k+1个地方. 如果n<=k+1 那么放在1的位置就ok.因为能覆盖1..k+1 如果n<=2k+1 ...
- 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) A】Palindrome Dance
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] i从1..n/2循环一波. 保证a[i]和a[n-i+1]就好. 如果都是2的话填上min(a,b)*2就好 其他情况跟随非2的. ...
- Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) D mt19937
https://codeforces.com/contest/1040/problem/D 用法 mt19937 g(种子); //种子:time(0) mt19937_64 g(); //long ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D. Jury Meeting(双指针模拟)
D. Jury Meeting time limit per test 1 second memory limit per test 512 megabytes input standard inpu ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
A. Fraction 题目链接:http://codeforces.com/contest/854/problem/A 题目意思:给出一个数n,求两个数a+b=n,且a/b不可约分,如果存在多组满足 ...
随机推荐
- 【2017-04-25】winform公共控件、菜单和工具栏
一.公共控件 公共控件很多的属性很多都相似,这些是大部分都相同的: +布局 - AutoSize:自动适应控件上文字内容- Location:位置- Margin:控件间的间距- Size:控件大小 ...
- 如何用新安装的jdk替换掉Linux系统默认jdk
版主写的非常棒: http://blog.csdn.net/u011364306/article/details/48375653
- linux常用命令:touch 命令
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a ...
- ATM-JAVA程序 //程序有5处相同错误,找不出原因 转账功能没有实现,修改密码来不及实现了
package JCC;//信1705-3 20173681 靳晨晨import java.io.BufferedReader;import java.io.File;import java.io.F ...
- ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)
ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088) 查看docker的activemq版本命令:$ docker ps | grep activemq927860512 ...
- linux下postgresql的连接数配置
1.查询当前连接数: select count(*) from pg_stat_activity; 2.查询最大连接数 show max_connections; 3.修改最大连接数 SHOW con ...
- window JNI_CreateJavaVM启动java程序
https://blog.csdn.net/earbao/article/details/51889605 #define _CRT_SECURE_NO_WARNINGS 1 #inclu ...
- Java axis2.jar包详解及缺少jar包错误分析
Java axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar ax ...
- Iris Classification on PyTorch
Iris Classification on PyTorch code # -*- coding:utf8 -*- from sklearn.datasets import load_iris fro ...
- 05: greenlet:轻量级的并发编程
网络编程其他篇 1.1 greenlet简介 1.greenlet原理 & 使用 1. greenle间切换 1)一个 “greenlet” 是一个很小的独立微线程,可以把它想像成一个堆栈帧, ...