Codeforces Round #622 (Div. 2)
A:
题意:
有ABC的三种菜,现在有a个A,b个B,c个C,问能组成多少种不同菜单
思路:
abc都大于等于4,肯定是7种,给abc排个序,从大到小举例删减
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define inf 0x3f3f3f3f
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define modd 998244353
const int maxn=1e5+;
int n,m,t;
bool cmp(int a,int b){
return a>b;
}
int main(){
scanf("%d",&t);
while(t--){
int a[];
scanf("%d%d%d",&a[],&a[],&a[]);
sort(a,a+,cmp);
if(a[]>= && a[]>= &&a[]>=){printf("7\n");}
else{
int ans=;
if(a[]>){a[]--;ans++;}
if(a[]>){a[]--;ans++;}
if(a[]>){a[]--;ans++;}
if(a[]> && a[]>){a[]--,a[]--;ans++;}
if(a[]> && a[]>){a[]--,a[]--;ans++;}
if(a[]> && a[]>){a[]--,a[]--;ans++;}
if(a[]> && a[]> && a[]>){a[]--,a[]--,a[]--;ans++;}
printf("%d\n",ans);
}
}
return ;
}
B:
题意:
一个人的在N个人,第一次排名是a,第二次排名是b,总排名分数是a+b,N个人从小到大排序,问他可能在N里面最小排多少名,最大排多少名
如果同分的话按照同分后面一名的名次-1来算
思路:
最大排名maxpos=min(x+y-1,N)
最小排名,就要比较中间值了,如果x+y<n+1,minpos=1,如果大于就是minpos=min(n,x+y-n+1);
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define inf 0x3f3f3f3f
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define modd 998244353
const int maxn=1e5+;
int n,m,t,x,y;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&x,&y);
int maxx=min(x+y-,n),k=,minn=;
int zhong=n;
zhong++;
if(x+y<zhong){minn=;}
else{
minn+=(x+y-n);
}
minn=min(minn,n);
printf("%d %d\n",minn,maxx);
}
return ;
}
C1:
题意:
N长度为1000以内,一个数字两边的数字不能都比他高,最多高一边
求他最大sum。叙述有问题,直接看样例
3
10 6 8
因为6左右都比他高,选择10 6 6或者6 6 8,sum明显前者高
所以答案输出10 6 6
思路:
暴力
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define inf 0x3f3f3f3f
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define modd 998244353
const int maxn=1e5+;
int n,a[],b[];
int main(){
scanf("%d",&n);
int pos;
ll maxx=-;
for(it i=;i<=n;i++){
scanf("%d",&a[i]);
}
for(it i=;i<=n;i++){
int zhi=a[i];ll sum=(ll)a[i];
for(it j=i+;j<=n;j++){
if(a[j]<zhi){
zhi=a[j];
}
sum+=(ll)zhi;
}
zhi=a[i];
for(it j=i-;j>;j--){
if(a[j]<zhi){
zhi=a[j];
}
sum+=(ll)zhi;
}
if(sum>maxx){
maxx=sum;pos=i;
}
}
int zhi=a[pos];b[pos]=a[pos];
for(it i=pos+;i<=n;i++){
if(a[i]<zhi){
zhi=a[i];
}
b[i]=zhi;
}
zhi=a[pos];
for(it i=pos-;i>;i--){
if(a[i]<zhi){
zhi=a[i];
}
b[i]=zhi;
}
for(it i=;i<=n;i++){
printf(i==n?"%d\n":"%d ",b[i]);
}
return ;
}
待补C2DE
题外话:
因为这场B题费时太久,wa的太多,在看C2的时候,感觉是个dp,然后wa了两发,时间也来不及直接暴力去过C1了
D题感觉是个贪心
B题因为minn的x+y-n+1可能大于n这点,一直没考虑清楚,wa到自闭,幸好最后还是看到了
这场人也少,比的不好
upd:
已补题:C2
Codeforces Round #622 (Div. 2)的更多相关文章
- Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)
Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...
- Codeforces Round #622 (Div. 2) B. Different Rules(数学)
Codeforces Round #622 (Div. 2) B. Different Rules 题意: 你在参加一个比赛,最终按两场分赛的排名之和排名,每场分赛中不存在名次并列,给出参赛人数 n ...
- Codeforces Round #622 (Div. 2) A. Fast Food Restaurant(全排列,DFS)
Codeforces Round #622 (Div. 2) A. Fast Food Restaurant 题意: 你是餐馆老板,虽然只会做三道菜,上菜时还有个怪癖:一位客人至少上一道菜,且一种菜最 ...
- Codeforces Round #622 (Div. 2).C2 - Skyscrapers (hard version)
第二次写题解,请多多指教! http://codeforces.com/contest/1313/problem/C2 题目链接 不同于简单版本的暴力法,这个数据范围扩充到了五十万.所以考虑用单调栈的 ...
- Codeforces Round #622 (Div. 2)C2 Skyscrapers最大"尖"性矩形,思维||分治
题:https://codeforces.com/contest/1313/problem/C2 题意:给出n个数,分别代表第i个位置所能搭建的最大高度,问以哪一个位置的塔的高度为基准向左的每一个塔都 ...
- Codeforces Round #622 (Div. 2) 1313 B Different Rules
B. Different Rules Nikolay has only recently started in competitive programming, but already qualifi ...
- Codeforces Round #622(Div 2) C1. Skyscrapers (easy version)
题目链接: C1. Skyscrapers (easy version) 题目描述: 有一行数,使得整个序列满足 先递增在递减(或者只递增,或者只递减) ,每个位置上的数可以改变,但是最大不能超过原来 ...
- Codeforces Round #622 (Div. 2) C2 - Skyscrapers (hard version) 单调栈
从左往右扫,找到比第i个小的第一个数字,l[i] = l[last] + (i - last) * m[i],用单调栈O(n)维护这个过程,再从右往左扫,同理可以算出r数组,注意一下long long ...
- Codeforces Round #622 (Div. 2)C(单调栈,DP)
构造出的结果一定是一个单峰/\这种样子的 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ...
- Codeforces Round #622 (Div. 2)C2
题意 N长度为500000以内,一个数字两边的数字不能都比他高,最多高一边 求他最大sum.叙述有问题,直接看样例 3 10 6 8 因为6左右都比他高,选择10 6 6或者6 6 8,sum明显前 ...
随机推荐
- 手动运行jar包,指定配置文件
打包程序 mvn package cd target 指定参数运行 java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar --spring.profile.act ...
- .net Core 安装在linux上
1.安装 .net Core 参考官方网站 https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install 2.发布应用程 ...
- day06_类与对象、封装、构造方法
02_面向对象与常用类 01_面向对象思想的概述 面向过程:当需要实现一个功能的时候,每个具体的步骤都需要亲力亲为,详细处理每一个细节. 面向对象:当需要实现一个功能的时候,不关心具体步骤,而是找一个 ...
- format的使用
v="敬爱可亲的{0},最喜欢在{1}地方干{2}" name1=input("名字>") lang=input("地点>") ...
- 前端Css学习
CSS 称为层叠样式表 css样式引入方式 第一种 head标签中引入 <style> /* 选择器{css属性名称:属性值;css属性名称:属性值;} */ div{ /* css注释 ...
- 详解C/C++中的的:#pragma pack(push) 、#pragma pack(pop) 和#pragma pack()
前言 我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定. 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? ...
- 傻傻分不清之 Cookie、Session、Token、JWT
傻傻分不清之 Cookie.Session.Token.JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打 ...
- 牛客多校第七场H Pair 数位dp理解
Pair 题意 给出A B C,问x取值[1,A]和y取值[1,B]存在多少组pair<x,y>满足以下最小一种条件,\(x \& y >c\),\(x\) xor \(y& ...
- not under version control
表示这个文件没有在SVN的控制之下 你在执行commit操作的时候,只有处于SVN控制之下的文件才能被commit,从update得到的文件是在SVN控制之下的(比如原来就存在的文本文件,你可以对其修 ...
- 番外:如何克隆可刷新的PDB(Refreshable PDB)
基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆创建 对应路径:属于克隆.PDB类型为:Refreshable 相关系列请参考<Oracle创建PDB列表文章> 注 ...