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 ...
随机推荐
- Vue.js条件渲染与列表渲染指南
title: Vue.js条件渲染与列表渲染指南 date: 2024/5/26 20:11:49 updated: 2024/5/26 20:11:49 categories: 前端开发 tags: ...
- Windows 7 任务栏开发 之 进度条(Progress Bar)
上一篇我们完成了"覆盖图标"(Overlay Icon)的相关开发,本篇我们将对进度条特性进行研究.在使用IE 下载文件时,任务栏图标会同步显示当前下载进度(如下图).那么在应用程 ...
- JS+DOM简要笔记
js官方文档: https://www.w3school.com.cn/js/index.asp 简单理解:html是内容,css是控制样式,js是行为. 1,js弱类型特点 JavaScript 是 ...
- 8.26考试总结(NOIP模拟48)[Lighthouse·Miner·Lyk Love painting·Revive]
告诉我,神会流血吗?--神不会,但你会. 前言 我直接打娱乐赛 T1 Lighthouse 解题思路 子集反演(但是 fengwu 硬要说是二项式反演咱也没法...) 发现其实 \(m\) 的值非常的 ...
- 如何使用Node.js、TypeScript和Express实现RESTful API服务
Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Express是一个保持最小规模的灵 ...
- ARM汇编基础
1 GNU语法 1.1 GNU汇编 GNU 汇编语法适用于所有的架构,并不是 ARM 独享的,GNU 汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分,如下: label: instruc ...
- Qt信号与槽的使用
参考视频:黑马程序员https://www.bilibili.com/video/BV1XW411x7NU?p=4 1 新建工程 先创建一个控件基础工程,创建后的界面如下: 主函数我们不需要修改,就 ...
- 剑指Offer-59.按之字形顺序打印二叉树(C++/Java)
题目: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 分析: 实际上是二叉树的层次遍历,只不过每一行 ...
- ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程
1.nifi 服务启动之后,浏览器输入https://localhost:8443/nifi ,匿名登录或者输入用户名密码进入操作页面,如下图所示: 2.组件工具栏 处理器,鼠标放到图标上提示Proc ...
- django通过celery定时任务
settings.py # Broker配置,使用Redis作为消息中间件 BROKER_URL = 'redis://127.0.0.1:6379/0' # BACKEND配置,这里使用redi ...