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 ...
随机推荐
- NoSQL和SQL的区别、使用场景与选型比较
什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...
- Java线程池实现原理与源码解析(jdk1.8)
为什么需要线程池?线程池能够对线程进行统一分配,调优和监控:- 降低资源消耗(线程无限制地创建,然后使用完毕后销毁)- 提高响应速度(无须创建线程)- 提高线程的可管理性 Java是如何实现和管理线程 ...
- iScroll4中事件点击一次却触发两次解决方案
iScroll是我们在做手机网页中常用的滑动控件之一.单说其功能已相当丰富.但个别时候也是会掉坑的,正好这次就遇上了.在android的app中嵌入网页时不少手机会出现一次点击两次触发的现象.经过一段 ...
- javascript对象学习笔记
目前所见的,在普通的JavaScript应用中和绝大多数人一样使用的是全局的方式.大概是因为JavaScript所定义的变量或函数默认就是全局的.为了是代码不至于太凌乱,变量不至于稀里糊涂的就被人重定 ...
- 为什么使用ROS的remap标签不起作用?
1. remap的作用 remap可以让ROS节点订阅发布的topic名字更换为另外一个名字.例如 <remap from="/old_topic" to="/ne ...
- 抽取网易云音乐热门评论:html+css+python+js 音乐与灵魂的碰撞
抽取网易云音乐热门评论:html+css+python+js 音乐与灵魂的碰撞 代码链接 不说废话,上代码!!! get.py # get.py import urllib.request impor ...
- P1787 [入门赛 #22]非众数 Hard Version 题解
P1787 [入门赛 #22]非众数 Hard Version 题解 原题传送门 这里对 pjh0625 的题解进行了详细解释 1. 读题 题目要求计算给定字符串中非众数子串的数量. 非众数子串 的定 ...
- [阿里DIN] 从论文源码梳理深度学习几个概念
[阿里DIN] 从论文源码梳理深度学习几个概念 目录 [阿里DIN] 从论文源码梳理深度学习几个概念 0x00 摘要 0x01 全连接层 1.1 全连接层作用 1.2 CNN 1.3 RNN 1.4 ...
- [HDU5603] the soldier of love 题解
考虑到正向求解困难,于是正难则反. 那么实际上对于 \(a_i\) 和 \(a_{i+1}\) 来说,它们给答案的贡献就是满足 \(l_j>a_i,r_j<a_{i+1}\) 的区间数量. ...
- LINUX 服务器安装nginx redis jdk等步聚
1.安装指令步聚 sudo yum update 更新linux系统 yum install -y nginx 安装nginx systemctl enable nginx 设置开机启动nginx s ...