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

  1. Autumn is a second spring when every leaf is a flower.

    Autumn is a second spring when every leaf is a flower. 秋天即是第二个春天,每片叶子都是花朵.——阿尔贝·加缪

  2. Visual Studio 2012 trial version

    Update: vs2012.5.iso http://download.microsoft.com/download/9/F/1/9F1DEA0F-97CC-4CC4-9B4D-0DB45B8261 ...

  3. myeclipse trial expired[转]

    转自:http://blog.csdn.net/yuyuyuyuy/article/details/5878122 今天MyEclipse提示过期了,MyEclipse Trial Expired. ...

  4. (转)软件版本中的Alpha,Beta,RC,Trial是什么意思?

    版本号:V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta )Build:用数字或日期标示版本号的一种方式.(如:VeryCD ...

  5. 软件版本中的Alpha,Beta,RC,Trial是什么意思?

    版本号: V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta ) Build:用数字或日期标示版本号的一种方式.(如:VeryC ...

  6. 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 ...

  7. 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 ...

  8. 42028: Assignment 1 – Autumn 2019

    42028: Assignment 1 – Autumn 2019 Page 1 of 4Faculty of Engineering and Information TechnologySchool ...

  9. 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 ...

  10. 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 ...

随机推荐

  1. 【java提高】---细则(3)

    HashSet 与TreeSet和LinkedHashSet的区别 今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象.所以通过取出的数据肯定会有重复,所以要去掉重 ...

  2. https证书一键自动续期,帮你解放90天限制

    前言 前几天网站证书到期,发觉证书颁发每次只能90天有效期,这谁能忍受,于是乎发觉网上有免费的一键续期脚本,真正解放我们的双手.项目如下acme.sh. 期间由于"墙"的原因,踩了 ...

  3. tar基本命令

    常用基本命令 压缩文件 # touch a.txt # tar -czvf test.tar.gz a.txt  //或  tar -czvf /path/to/file.tar.gz file 列出 ...

  4. Synchronized的各场景使用方法(多窗口售票例子接上篇)

     同步锁机制:在<Thinking in Java>中,是这么说的:对于并发工作,你需要某种方式来防止两个任务访问相同的资源(其实就是共享资源竞争). 防止这种冲突的方法就是当资源被一个 ...

  5. 帮您了解CDN节点如何做到访问加速与安全防护

    本文分享自天翼云开发者社区<帮您了解CDN节点如何做到访问加速与安全防护>,作者:尹****荷 网站业务痛点 在当前网站快速发展的背景下,网站业务突增往往伴随着一系列网络安全隐患.主要会有 ...

  6. DBeaver出现“Public Key Retrieval is not allowed”错误的解决办法

    1.问题描述 我们在使用DBeaver连接MySql的时候,可能会出现"Public Key Retrieval is not allowed"的错误提示,如下图所示: 2.解决办 ...

  7. 深度学习中CUDA环境安装教程

    首先说明,本人是小白,一次安装,可能有不对的地方,望包含. 安装CUDA 因为我们是深度学习,很多时候要用到gpu进行训练,所以我们需要一种方式加快训练速度. 通俗地说,CUDA是一种协助" ...

  8. 【忍者算法】从入环点到相遇点:深入理解环形链表 II|LeetCode第142题 环形链表 II

    [忍者算法]从入环点到相遇点:深入理解环形链表 II|LeetCode第142题 问题升级:不止要找环,还要找入环点 在上一题中,我们讨论了如何判断链表是否有环.现在让我们更进一步:如果确定链表中有环 ...

  9. QT5笔记:10. 容器类的迭代

    1. 这里指的是Java类型的迭代器,即使用方式和Java中一致 代器的使用例子(适用于可读可写迭代器) QList<QString>list;//声明容器类 list << ...

  10. ML树构建简明教程

    数据准备 Teamviewer登录实验室服务器,访问http://172.17.128.86:8501/CleanData,按照页面对应的格式要求分别从NCBI和GISAID数据库下载数据,拖拽到对应 ...