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)的更多相关文章

  1. Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)

    Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...

  2. Codeforces Round #622 (Div. 2) B. Different Rules(数学)

    Codeforces Round #622 (Div. 2) B. Different Rules 题意: 你在参加一个比赛,最终按两场分赛的排名之和排名,每场分赛中不存在名次并列,给出参赛人数 n ...

  3. Codeforces Round #622 (Div. 2) A. Fast Food Restaurant(全排列,DFS)

    Codeforces Round #622 (Div. 2) A. Fast Food Restaurant 题意: 你是餐馆老板,虽然只会做三道菜,上菜时还有个怪癖:一位客人至少上一道菜,且一种菜最 ...

  4. Codeforces Round #622 (Div. 2).C2 - Skyscrapers (hard version)

    第二次写题解,请多多指教! http://codeforces.com/contest/1313/problem/C2 题目链接 不同于简单版本的暴力法,这个数据范围扩充到了五十万.所以考虑用单调栈的 ...

  5. Codeforces Round #622 (Div. 2)C2 Skyscrapers最大"尖"性矩形,思维||分治

    题:https://codeforces.com/contest/1313/problem/C2 题意:给出n个数,分别代表第i个位置所能搭建的最大高度,问以哪一个位置的塔的高度为基准向左的每一个塔都 ...

  6. Codeforces Round #622 (Div. 2) 1313 B Different Rules

    B. Different Rules Nikolay has only recently started in competitive programming, but already qualifi ...

  7. Codeforces Round #622(Div 2) C1. Skyscrapers (easy version)

    题目链接: C1. Skyscrapers (easy version) 题目描述: 有一行数,使得整个序列满足 先递增在递减(或者只递增,或者只递减) ,每个位置上的数可以改变,但是最大不能超过原来 ...

  8. Codeforces Round #622 (Div. 2) C2 - Skyscrapers (hard version) 单调栈

    从左往右扫,找到比第i个小的第一个数字,l[i] = l[last] + (i - last) * m[i],用单调栈O(n)维护这个过程,再从右往左扫,同理可以算出r数组,注意一下long long ...

  9. Codeforces Round #622 (Div. 2)C(单调栈,DP)

    构造出的结果一定是一个单峰/\这种样子的 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ...

  10. Codeforces Round #622 (Div. 2)C2

    题意 N长度为500000以内,一个数字两边的数字不能都比他高,最多高一边 求他最大sum.叙述有问题,直接看样例 3 10 6 8 因为6左右都比他高,选择10 6 6或者6 6  8,sum明显前 ...

随机推荐

  1. C# Enumerable

    使用Enumerable.Range 打印数字0到9 static void Main(string[] args) { , ); //Range方法获取两个int参数:一个起始数,一个是要生成的结果 ...

  2. nginx ip配置反向代理为本地域名

    #### gitlab反向代理 server { listen ; server_name gitlab.hp.com; location / { proxy_pass http://192.168. ...

  3. 占位 DL

    占位 DL include: DL404

  4. RabbitMQ使用注意事项

    用ConnectionFactory创建的TCP连接要复用,因为创建新的TCP连接比较耗时. IModel(信道)是轻量级的,可以用时创建. channel.BasicQos(0, 1, false) ...

  5. VS+QT创建一个OpenCV应用

    1.选择:文件->新建->项目->搜索“QT”->Qt GUI Application,输入工程名,下一步…进行新建. 选择依赖的模块:最基础的QtCore.QtGui.QtW ...

  6. Web渗透测试思路整理

    信息收集: 域名/IP 子域名列表 whois: 注册地址,注册人,联系方式等 whois反查: 同ip有哪些站点(旁注),同一个注册人注册了哪些域名 社工注册人信息 指纹识别: 操作系统及版本 数据 ...

  7. SQLAlchemy,flask-sqlalchemy

    SQLAlchemy 1.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用 ...

  8. Pandas初体验之数据结构——Series和DataFrame

    Pandas是为了解决数据分析任务而创建的,纳入了大量的库和标准数据模型,提供了高效地操作大型数据集所需的工具. 对于Pandas包,在Python中常见的导入方法如下: from pandas im ...

  9. (转载)设置虚拟机桥接模式以及解决桥接模式上不了网以及ping不通主机的问题

    解决问题的博客地址:设置虚拟机桥接模式以及解决桥接模式上不了网以及ping不通主机的问题 遇见的问题: 1.VMnet8无法设置为桥接模式 结论:只要主机网络可被桥接,VMnet8根本不需要设为桥接模 ...

  10. html div四边阴影效果

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...