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. Spring Boot的Web配置

    一.使用YML文件配置多套环境    

  2. 解决Maven依赖报红的批处理文件

    maven经常因为网络或者其他原因导致仓库jar包下载不完整,导致jar包依赖报红,此小工具可以一键删除未下载完成文件 set REPOSITORY_PATH=E:\deplor\apache-mav ...

  3. 题解 CF1064A 【Make a triangle!】

    题目传送门 反正数学方法我是不会 那只能模拟了一只连模拟题解都看不懂的哀怨 我的思路大体如下 1.定义3个变量a,b,c并输入 int a,b,c; cin>>a>>b> ...

  4. JS变量和数据类型及其转化

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. FJUTOJ-3682 LRU算法的实现2 (链表+哈希)

    传送门 此题让我们实现一个LRU的模板类.本题较简便且高效的写法是维护一个std::list和一个std::unordered_map. std::list 与 std::unordered_map ...

  6. markdown文本编辑学习笔记2

    目录 1.删除线 2.无序列表 4 todo list 5分割符号 6 TOC自动生成目录 7 插入代码块 8 斜体.粗体.删除线.下划线.背景高亮 markdown编辑公式 1.删除线 ~~要删除的 ...

  7. Execl导出系统

    前台代码: <button class="btn btn-warning" type="button" onclick="location.hr ...

  8. CF399B Red and Blue Balls

    题目 CF399B 洛谷RemoteJudge 思路 很容易发现,栈中靠上的蓝色球的出栈,对它下方的蓝色球没有影响. 举个例子: 第一步中靠上的蓝色球在第三步出栈了,这一过程对它下面的蓝色球(即第一步 ...

  9. pytest学习4-fixtures

    源码注释: def fixture(scope="function", params=None, autouse=False, ids=None, name=None): &quo ...

  10. java课后作业3

    1.动手动脑 由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法. 2.java字段初始化 运行结果 100 300 java字段在初始化时先按照对应的构造方法执行.若构造方法中没有对变 ...