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

  1. Codeforces Round #581(Div. 2)

    Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...

  2. Cow Contest POJ - 3660 (floyd 传递闭包)

    N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we ...

  3. 【CodeForces - 1200C】Round Corridor (数论gcd)

    Round Corridor  Descriptions Amugae位于一个非常大的圆形走廊中.走廊由两个区域组成.内部区域等于nñ扇区,外部区域等于m米部门.在相同区域(内部或外部)的每对扇区之间 ...

  4. Educational Codeforces Round 29(6/7)

    1.Quasi-palindrome 题意:问一个字符串(你可以添加前导‘0’或不添加)是否是回文串 思路:将给定的字符串的前缀‘0’和后缀‘0’都去掉,然后看其是否为回文串 #include< ...

  5. Codeforces Round #334(div.2)(新增不用二分代码) B

    B. More Cowbell time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  6. Round Numbers (排列组合)

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7558   Accepted: 2596 Description The c ...

  7. codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)

    题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...

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

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

  10. Codeforces Round #342 (Div 2) 解题报告

    除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest F ...

随机推荐

  1. Redis高可用三(Redis Cluster集群)

    Redis高可用三(Redis Cluster集群) 参考博文1:https://blog.csdn.net/qq_40298351/article/details/102669146 参考博文2:h ...

  2. Vue cli路由

    上面是将Forecast组件作为了Home的子组件使用,现在我们将其作为一个路由组件使用. 在router/index.js路由系统注册路由: { path: '/forecast', name: ' ...

  3. HTML——文本域

    在 HTML 中,使用 <textarea> 标签来表示多行文本框,又叫做文本域.与其它 <input> 标签不同,<textarea> 标签是单闭合标签,它包含起 ...

  4. webview2 示例 Samples Selenium

    https://github.com/MicrosoftEdge/WebView2Samples https://learn.microsoft.com/zh-cn/microsoft-edge/we ...

  5. 编译安装mysql5.7.20

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \ ...

  6. 记一次bug排除心得

    问题背景 要做一个需求,大概是检测到某输入重启,于是写一个demo调试一下 c语言程序,交叉编译后在adb shell下运行 思路 用 am 命令直接重启 我们先手动验证一下,发现这个设备不支持am命 ...

  7. js 检测文本是否溢出

    自定义指令的方式 手写实现 /** * 检测文本是否溢出 * 参考 https://github.com/ElemeFE/element/blob/dev/packages/table/src/tab ...

  8. 一文了解JVM(中)

    HotSpot 虚拟机对象探秘 对象的创建 Header 解释 使用 new 关键字 调用了构造函数 使用 Class 的 newInstance 方法 调用了构造函数 使用 Constructor ...

  9. 2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果。 要求在最多执行 k 次操作的情况下, 计算数组

    2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果. 要求在最多执行 k 次操作的情况下, 计算数组 ...

  10. CAP 8.2 版本发布通告

    前言 今天我们很高兴宣布 CAP 发布 8.2 版本正式版,我们在这个版本中主要致力于对订阅着并行执行的特性提供支持,同时添加了对在订阅者中对消息头的控制行为. 下面,具体看一下我们新版本的功能吧. ...