SMU Autumn 2024 Trial 2
A. Stand-up Comedian
只要a不为0,那么由于b和c是相互制约的,比如2 5 10 6这个样例,讲完两个笑话以后两个人的容量为2 2,可以选择一个人+1,一个人-1,那么就可进行min(b,c)*2次,进行完后,两个人的容量仍为2,2,最后要看还剩几个笑话可以讲,就是min(a+1,abs(b-c)+d),就是容量很大时可以把笑话全讲完,如果容量小于剩下的笑话,就只能讲当前容量+1个笑话
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
while(n--)
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if(a==0) {
cout<<1<<endl;
continue;
}
int ans=0;
ans+=a;//两个人都增加
ans+=min(b,c)*2;//相互制约
ans+=min(a+1,abs(b-c)+d);//剩下的可以讲的笑话,某个为0时
cout<<ans<<endl;
}
}
B. Harmony Analysis
++++++++
++++????
++??++??
++????++
+?+?+?+?
+?+??+?+
+??++??+
+??+?++?
我们用问号来代替*号会发现,当k=3时,后四行是由前四行偶数位异或得到的
#include<bits/stdc++.h>
using namespace std;
int n,m=1,a[512][512];
/*void print(int m)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++) cout<<a[i][j];
cout<<endl;
}
}
*/
int main()
{
a[0][0]=1,cin>>n;
for(int i=1;i<=n;i++)
{
//print(m);
for(int j=0;j<m;j++)for(int k=m*2-1;k>=0;k--)a[j][k]=a[j][k/2];
//把每一行对半复制比如10 复制为1100
for(int j=m;j<m*2;j++)for(int k=0;k<m*2;k++)a[j][k]=a[j-m][k];
//把后一半行复制成前一半行
for(int j=m;j<m*2;j++)for(int k=1;k<m*2;k+=2)a[j][k]^=1;
//后一半行偶数位异或
m*=2;
//cout<<endl;
}
for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++) {
if(a[i][j]==1) cout<<"+";
else cout<<"*";
}
cout<<endl;
}
//print(m);
return 0;
}
C. Armchairs
动态规划
\(f[i][j]\)用来记录前i个人坐了前j把椅子的最小代价,i为前i个人,j为前j把椅子。
预处理一下,把有人坐的位置放进b数组里
\(如果当前位置没有人(a[j]==0),则f[i][j]=min(f[i-1][j-1]+abs(b[i]-j,f[i][j-1]))\)
\(如果有人坐了,则f[i][j]=f[i][j-1]\)
#include<bits/stdc++.h>
using namespace std;
int t,n,a[5005],f[5005][5005],b[5005];
//f[i][j] i是前i个人 j是前j把椅子 f[i][j]为前i个人坐了前j把椅子的最小费用
int main() {
int n;
int cnt=0;
cin>>n;
for(int i=1;i<=n;i++) {
cin>>a[i];
if(a[i]==1) b[++cnt]=i;//把有人坐的位置放进b数组里
}
memset(f,0x3f3f3f,sizeof (f));//先把每个位置的代价设置为无限大
//注意memset赋值最大值只能写0x3f3f3f
for(int i=0;i<=n;i++) f[0][i]=0;//第一行代价为0,0个人任意坐任意把椅子没有代价
for(int i=1;i<=cnt;i++)
{
for(int j=1;j<=n;j++)
{
if(a[j]==0){//当前位置没有人,考虑是否可以坐,f[i-1][j-1]是当前行的上一行的最优解
f[i][j]=min(f[i][j-1],f[i-1][j-1]+abs(b[i]-j));
}else//有人了,代价就是前一个值
f[i][j]=f[i][j-1];
}
}
cout<<f[cnt][n]<<endl;//此时输出的就是最小代价
}
D. Maximum Subarray
这道题是最大子段和的进阶版,大概是2000分的题目,我先放着,等我日后再来补补
https://www.luogu.com.cn/problem/solution/CF1796D 别人的题解
SMU Autumn 2024 Trial 2的更多相关文章
- Autumn is a second spring when every leaf is a flower.
Autumn is a second spring when every leaf is a flower. 秋天即是第二个春天,每片叶子都是花朵.——阿尔贝·加缪
- Visual Studio 2012 trial version
Update: vs2012.5.iso http://download.microsoft.com/download/9/F/1/9F1DEA0F-97CC-4CC4-9B4D-0DB45B8261 ...
- myeclipse trial expired[转]
转自:http://blog.csdn.net/yuyuyuyuy/article/details/5878122 今天MyEclipse提示过期了,MyEclipse Trial Expired. ...
- (转)软件版本中的Alpha,Beta,RC,Trial是什么意思?
版本号:V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta )Build:用数字或日期标示版本号的一种方式.(如:VeryCD ...
- 软件版本中的Alpha,Beta,RC,Trial是什么意思?
版本号: V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta ) Build:用数字或日期标示版本号的一种方式.(如:VeryC ...
- POJ 2756 Autumn is a Genius 大数加减法
Description Jiajia and Wind have a very cute daughter called Autumn. She is so clever that she can d ...
- BAYESIAN STATISTICS AND CLINICAL TRIAL CONCLUSIONS: WHY THE OPTIMSE STUDY SHOULD BE CONSIDERED POSITIVE(转)
Statistical approaches to randomised controlled trial analysis The statistical approach used in the ...
- 42028: Assignment 1 – Autumn 2019
42028: Assignment 1 – Autumn 2019 Page 1 of 4Faculty of Engineering and Information TechnologySchool ...
- PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ,you must purchase the retail version.
PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ...
- Remove menucool tooltip trial version
You use this crack on your own risk , i dont reserve any right on this script or what is going to af ...
随机推荐
- RESTful 架构详解-copy
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- Spring 注解Annotation代替XML实现零配置
1. 使用Spring注解来注入属性1.1. 使用注解以前我们是怎样注入属性的类的实现: public class UserManagerImpl implements UserManager { p ...
- 在OERV也可以玩MC(下)
话接上回,上期讲述了在OERV安装HMCL的历程,这期讲讲HMCL的打包. Show openEuler:24.09 / HMCL - 开源软件构建与测试.在这个网站里,可以看到有好几个文件, ...
- 面试题: == 和 equals() 区别【包装类重写了object类中的equals方法】
/* * * 面试题: == 和 equals() 区别 * * 一.回顾 == 的使用: * == :运算符 * 1. 可以使用在基本数据类型变量和引用数据类型变量中 * 2. 如果比较的是基本数据 ...
- 创建多线程的方式二:实现Runnable接口
/** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对 ...
- .net core使用Nacos注册中心
一.前言 好久不见~复工第一更 本文仅参考Nacos快速开始,实现Windows本机单节点测试部署Nacos服务,不适用于生产环境. Nacos是实现动态服务发现.配置管理和服务管理平台的项目,由阿里 ...
- 硬件设计:逻辑电平--差分信号(PECL、LVDS、CML)电平匹配
参考资料:逻辑电平设计规范 PECL电平匹配设计指南 CML信号与LVPECL信号的连接 硬件设计:逻辑电平--CML 硬件设计:逻辑电平--ECL/PECL/LVPECL 硬件设计:逻辑电平--LV ...
- 银杏叶也是yxy
今年下半年(9月后)第一个使我震撼而狂喜的书籍,金阁寺. 翻译是林少华.他翻译这个可比村上春树好多了 一切都像梦寐一般,一切都如此完美 完美的结构,完美的心理叙述,撕心裂肺的景色描写 战后无限的虚无与 ...
- Thor: 统一AI模型网关的革新之选
Thor: 统一AI模型网关的革新之选 项目价值 Thor(雷神托尔)作为一个强大的AI模型管理网关,解决了当前AI领域一个关键痛点:不同AI服务商的API格式各异,集成成本高.Thor通过将各种AI ...
- Linux - vi & vim 编辑器
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. vim 是从vi发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 使 ...