SMU Summer 2024 Contest Round 1(7.8)zhaosang
A-A
http://162.14.124.219/contest/1005/problem/A
一道数学问题,求概率。
要求成功的概率,有两个色子, 一个用来抛正反面,一个用来控制得分大小,当超过某个得分值,答案正确。
模拟一下,如果考虑失败的情况太多,我们只需要考虑正确的情况,贪心就是每次都是正面,得分翻倍,直到大于等于k值
#include<bits/stdc++.h>
using namespace std;
using ll =long long;
set<ll>st;
ll ma[100001];
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
ll n,k;
double ans=0.0;
cin>>n>>k;
for(int i=1;i<=n;i++){
ll res=i;
double cnt=1.000000000000/n;
while(res<k){
cnt*=0.5000000;
res*=2;
}
ans+=cnt;
}
cout<<setprecision(12)<<ans;
}
C-C
http://162.14.124.219/contest/1005/problem/C
这道题就是让你从上往下涂颜色,要求颜色数量尽可能小,如果出现相同颜色要求后面的值大于前面。
思考一下,颜色数量少,那我们尽可能只用几种颜色,如果后面的值大于前面的,那么后面可以覆盖前面的颜色,
然后把颜色的最小值更新,如果后面的值大于等于已经使用的颜色的最大值,这个时候创建一个新的颜色,以此类推。
代码如下:
#include<bits/stdc++.h>
using namespace std;
using ll =long long;
set<ll>st;
ll ma[100001];
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
ll n,ans=0;
cin>>n;
for(int i=1;i<=n;i++){
ll a;
int pd=0;
cin>>a;
if(i==1){
ans++;
ma[1]=a;
}else{
for(int j=1;j<=ans;j++){
if(a>ma[j]){
ma[j]=a;
pd=1;
break;
}
}
if(pd==0){
ans++;
ma[ans]=a;
}
}
}
cout<<ans;
}
F-F
http://162.14.124.219/contest/1005/problem/F
这道题做了挺久,一开始没想明白,只能两个循环然后剪枝,后面想法出来后是贪心。
答案最大,那么让尽可能大的数加到原数组,使用我们只需要从大到小把数加到原数组从小到大排序
,这样最大的值依次替换成最小的值,如果没有替换的数没有比原数组大,说明此时已经是最大值
#include <bits/stdc++.h>
using namespace std;
using ll =long long;
struct Node{
ll x,y;
}q[1000010];
ll v[1000010];
ll n,m;
bool cmp(Node a,Node b){
return a.y>b.y;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>v[i];
sort(v+1,v+n+1);
for(int i=1;i<=m;i++)cin>>q[i].x>>q[i].y;
sort(q+1,q+1+m,cmp);
int j=1;
for(int i=1;i<=n;i++){
if(q[j].x==0)j++;
if(v[i]<q[j].y&&q[j].x>0)v[i]=q[j].y,q[j].x--;
else if(v[i]>q[j].y)break;
}
ll sum=0;
for(int i=1;i<=n;i++)sum+=v[i];
cout<<sum;
}
B-B(——补题)
https://atcoder.jp/contests/abc128/tasks/abc128_d
后面我补题的时候也没有思路,看学长的代码可能是我比较笨,不知道为什么这样可以取到最大。
我去看了很多题解发现也看不懂,我就知道太弱了,后面找了一篇很若只的教学看懂了,分享一下。
就是枚举然后每次都停下来检查自己,每左边加一个或者右边加一个就停下来,如果加有负数就记录一下,
然后检查自己,如果还有操作次数,那么可以减掉有的负数,然后继续左边右边加。取答案最大值即可
代码如下:
/*////////ACACACACACACAC///////////
. Code by Ntsc .
. WHY NOT????? .
/*////////ACACACACACACAC///////////
#include<bits/stdc++.h>
#define ll long long
#define db double
#define rtn return
using namespace std;
const int N=1e5;
const int M=1e5;
const int Mod=1e5;
const int INF=1e5;
ll n,m,ans,sum,k;
ll t[N],v[N];
signed main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>v[i];
}
for(int ia=0;ia<=n&&ia<=k;ia++){//枚举A
for(int ib=0;ib+ia<=n&&ib+ia<=k;ib++){//枚举B
int cnt=0;sum=0;
for(int i=1;i<=ia;i++)t[++cnt]=v[i],sum+=v[i];
for(int i=1;i<=ib;i++)t[++cnt]=v[n-i+1],sum+=v[n-i+1];
sort(t+1,t+cnt+1);
int c=k-ia-ib;//计算C
for(int i=1;i<=c&&i<=cnt;i++){
if(t[i]>0)break;//一直丢到没有负数或者操作数达到k或者t中没有剩余元素
sum-=t[i];//从t中挑选出负数,丢掉
}
ans=max(ans,sum);
}
}
cout<<ans<<endl;
return 0;
}
SMU Summer 2024 Contest Round 1(7.8)zhaosang的更多相关文章
- Codeforces Round #581(Div. 2)
Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...
- Cow Contest POJ - 3660 (floyd 传递闭包)
N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we ...
- 【CodeForces - 1200C】Round Corridor (数论gcd)
Round Corridor Descriptions Amugae位于一个非常大的圆形走廊中.走廊由两个区域组成.内部区域等于nñ扇区,外部区域等于m米部门.在相同区域(内部或外部)的每对扇区之间 ...
- Educational Codeforces Round 29(6/7)
1.Quasi-palindrome 题意:问一个字符串(你可以添加前导‘0’或不添加)是否是回文串 思路:将给定的字符串的前缀‘0’和后缀‘0’都去掉,然后看其是否为回文串 #include< ...
- Codeforces Round #334(div.2)(新增不用二分代码) B
B. More Cowbell time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Round Numbers (排列组合)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7558 Accepted: 2596 Description The c ...
- codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)
题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...
- Codeforces Round #626 (Div. 2) B. Count Subrectangles
题目连接:https://codeforces.com/contest/1323/problem/B 题意:给一个大小为n的a数组,一个大小为m的b数组,c数组是二维数组c[i][j]=a[i]*b[ ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)(9/11)
$$2017-2018\ ACM-ICPC\ German\ Collegiate\ Programming\ Contest (GCPC 2017)$$ \(A.Drawing\ Borders\) ...
- Codeforces Round #342 (Div 2) 解题报告
除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest F ...
随机推荐
- Redis高可用三(Redis Cluster集群)
Redis高可用三(Redis Cluster集群) 参考博文1:https://blog.csdn.net/qq_40298351/article/details/102669146 参考博文2:h ...
- Vue cli路由
上面是将Forecast组件作为了Home的子组件使用,现在我们将其作为一个路由组件使用. 在router/index.js路由系统注册路由: { path: '/forecast', name: ' ...
- HTML——文本域
在 HTML 中,使用 <textarea> 标签来表示多行文本框,又叫做文本域.与其它 <input> 标签不同,<textarea> 标签是单闭合标签,它包含起 ...
- webview2 示例 Samples Selenium
https://github.com/MicrosoftEdge/WebView2Samples https://learn.microsoft.com/zh-cn/microsoft-edge/we ...
- 编译安装mysql5.7.20
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \ ...
- 记一次bug排除心得
问题背景 要做一个需求,大概是检测到某输入重启,于是写一个demo调试一下 c语言程序,交叉编译后在adb shell下运行 思路 用 am 命令直接重启 我们先手动验证一下,发现这个设备不支持am命 ...
- js 检测文本是否溢出
自定义指令的方式 手写实现 /** * 检测文本是否溢出 * 参考 https://github.com/ElemeFE/element/blob/dev/packages/table/src/tab ...
- 一文了解JVM(中)
HotSpot 虚拟机对象探秘 对象的创建 Header 解释 使用 new 关键字 调用了构造函数 使用 Class 的 newInstance 方法 调用了构造函数 使用 Constructor ...
- 2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果。 要求在最多执行 k 次操作的情况下, 计算数组
2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果. 要求在最多执行 k 次操作的情况下, 计算数组 ...
- CAP 8.2 版本发布通告
前言 今天我们很高兴宣布 CAP 发布 8.2 版本正式版,我们在这个版本中主要致力于对订阅着并行执行的特性提供支持,同时添加了对在订阅者中对消息头的控制行为. 下面,具体看一下我们新版本的功能吧. ...