金山中学 rugular SRM 04 ——纪念我的第一次Ak
虽然只是一场比较简单的比赛 但奈何我也比较弱啊....
T1 一道计算概率的题目
T SRM 04
描述
给个长度为 n 的数列,每次操作能将数列打乱(RandomShuffle),问在期望下需要多少次操作才能得到一个不降数列。
输入格式
第一行一个整数 n 表示数列长度
第二行 n 个整数 表示数列
输出格式
一个小数表示期望操作次数,四舍五入至 6 位小数输出
样例输入
2 5 2
样例输出
2.000000
数据范围与约定
这道题想了一下 发现n很小那么n这么小,原因竟然是。。最小答案随n增大而超指数级衰减?
所以我写了个没有重复元素的全排列就是答案了 当然还得特殊考虑一开始就是符合要求而不需要打乱的情况 然后四舍五入
我是这么写的printf("%.6lf",ans+1e-10); 因为啊%.6f 是输出六位,四舍六入,为了四舍五入就+eps
贴一波代码 233
#include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f; } int n; int w[1007],sum[1007]; double ans=1,mx; bool f=1; int main() {n=read();for(double i=n;i;i=i-1) ans=ans*i; for(int i=1;i<=n;i++){w[i]=read(); sum[w[i]]++;if(w[i]<w[i-1]) f=0;}if(f){printf("%.6lf\n",1.0*0); return 0;}for(int i=1;i<=107;i++){if(sum[i]<=1) continue;mx=1;for(double k=1;k<=sum[i];k=k+1) mx=mx*k;ans=ans/mx;}printf("%.6lf",ans+1e-10);return 0; }
View Code
T2
J SRM 04
背景&&描述
在一个似曾相识的春分的前一天,罚吹们组队参加了新岛老贼组织的ghost parade
游行在一条大街上举行,出于反情侣的目的,新岛老贼做规划的时候使得中央的过道仅能容一人通过。
大街上有n个扭曲的改改人从各自的位置出发,想要到自己选定好的位置进行传教活动。
这本来是件小事,但是中国有一句古话,叫做一万个罚吹心中有一万部罚抄,所以如果俩改改人在路上相遇的话就会上演全武行..
幸好新岛老贼在大街两端留了足够的空间,改改人们可以先走到两端,再一个个走到目标位置。
大街长度为L,两端分别是和,第i个改改人一开始在,想要走到。
显然肯定存在合法的方案使得全程不会有俩改改人在不是端点的地方相遇。
新岛老贼想知道所有改改人移动长度总和的最小值,不然他就会把你的mz写死(
输入格式
多组数据。第一个整数T表示数组组数。
对于每组数据:
第一行俩整数n和L。
接下来有n行,每行俩整数,第i+1行的两个数分别表示和。
输出格式
对于每组数据输出一行一个整数,表示移动距离之和的最小值。
样例输入1
1 2 10 3 8 9 6
样例输出1
14
样例输入2
1 4 20 6 13 11 4 5 7 12 14
样例输出2
48
数据范围与约定
- ,保证同组数据里,各不相同,各不相同。
样例解释1
第二个人走到右端,第一个人走到右端,第二个人走到自己的目的地,第一个人走到自己的目的地。
样例解释2
第3、1、2个人依次走到左端,第4、1、3、2个人依次走到目的地。
这道题以前写过题解hh
网络流题解
贪心题解
两个看一个就行了 不过贪心确实跑得比较快 原题是51nod的狭窄的通道 有兴趣做做哇 题目传送门
T3
M SRM 04
描述
给 n 个数 ,有 Q 个询问 [L,R],每次求出有多少二元组 同时满足 和
输入格式
第一行两个整数 n 和 Q
第二行 n 个整数
接下来 Q 行,每行代表一次询问,每行有两个整数为 L 和 R
输出格式
对于每次询问,依次输出其所得到的值
样例输入
3 2 3 2 1 1 2 1 3
样例输出
1 3
数据范围与约定
- 有坑点,请仔细阅读题目
T3我是最后写的因为考虑到有坑点qwq 但是最后发现确实有坑点因为std错了.....最后重测才Ac的 也是还了个愿吧
这道题正解应该是树状数组求逆序数对 但是我不会哇 233 所以就n2暴力写了一波 还好没被卡
sum【i】【j】就是i这个数到j(可前可后)有多少个符合条件的数和他组成数对 这样就可以o(n2)预处理然后0(1)查询了
#include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL read(){LL ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f; } LL n,q,x,y; LL v[1007]; int sum[1007][1007],f[1007][1007]; int main() {n=read(); q=read();for(int i=1;i<=n;i++) v[i]=read();for(int i=1;i<=n;i++){for(int j=i-1;j;j--){sum[i][j]=sum[i][j+1];if(v[j]>=v[i]) sum[i][j]++;}for(int j=i+1;j<=n;j++){sum[i][j]=sum[i][j-1];if(v[i]>=v[j]) sum[i][j]++;}}//printf("%d\n",f[0][0]); // for(int i=1;i<=n;i++,printf("\n")) for(int j=1;j<=n;j++) printf("[%d] ",sum[i][j]);for(int l=1;l<n;l++)for(int r=l+1;r<=n;r++)f[l][r]=f[l][r-1]+sum[r][l];//printf("%d\n",f[1][2]);//printf("%d\n",sum[2][1]);while(q--){x=read(); y=read(); //printf("[%lld %lld]\n",x,y); printf("%d\n",f[1][2]);x=max(1LL,x); y=min(n,y);if(x>=y) printf("0\n");else printf("%d\n",f[x][y]);}return 0; }
View Code
T4
A SRM 04
描述
给个整数 n,你需要算出这个数在二进制下有多少组连续的 1
输入格式
一个整数 n
输出格式
一个整数,表示连续的 1 的组数
样例输入
5
样例输出
2
数据范围与约定
样例解释
5 在二进制下是 101,组数为 2
这道题就是一波匹配就解决问题了
#include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL read(){LL ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f; } LL n,ans; bool f; int main() {n=read(); while(n){while((n&1)&&n) f=1,n>>=1;if(f) ans++;while(!(n&1)&&n) n>>=1;}printf("%lld",ans);return 0; }
View Code
T5
K SRM 04
描述
一个序列满足条件是指其众数在序列中的出现次数不小于 (len 为序列长度)。
给定长度为 n 的序列 A,问 A 中有多少连续子序列满足条件。
输入格式
第一行一个整数 n
第二行 n 个整数
输出格式
一个整数,表示满足条件的连续子序列数。
样例输入
7 1 2 3 3 2 1 3
样例输出
11
数据范围与约定
样例解释
在样例中满足条件的连续子序列有:A[1...1]、A[2...2]、A[3...3]、A[4...4]、A[5...5]、A[6...6]、A[7...7]、A[3...4]、A[2...4]、A[3...5]、A[3...7]。
这道题我用了离散化每个数的值来实现桶排然后就枚举区间 每次加一个数就更新一波众数就可以啦
#include<cstdio> #include<cstring> #include<algorithm> #define LL long long const int mod=23333333; using namespace std; int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f; } int n; int v[5007]; int first[mod],sum[1007]; LL ans,cnt; struct node{int v,next;}e[5007]; int get(int x){int w=x%mod;for(int i=first[w];i;i=e[i].next) if(e[i].v==x) return i;cnt++; e[cnt].v=x; e[cnt].next=first[w]; first[w]=cnt;return cnt; } int main() {n=read();for(int i=1;i<=n;i++) v[i]=read();for(int i=1;i<=n;i++){int k,mx=0;memset(sum,0,sizeof(sum));for(int j=i;j<=n;j++){k=get(v[j]); sum[k]++; mx=max(mx,sum[k]);if(mx>(j-i+1)/2) ans++;}}printf("%lld\n",ans);return 0; }
View Code
到这里这次比赛就圆满了(写完脑(nai)子疼) 这次也算发挥得不错吧 下次还是得被唐神葱神以及岚清大爷踩啊......祝我好运吧.
转载于:https://www.cnblogs.com/lyzuikeai/p/7144082.html
金山中学 rugular SRM 04 ——纪念我的第一次Ak相关推荐
- 汕头金山中学2021高考成绩查询,2019汕头市金山中学录取分数线及2019高考成绩喜报...
汕头市金山中学分数线 中心城区:计划生773分/69位,指标生统招766分/68位 澄海区:计划生771分/51位 潮阳区:计划生772分/1位 潮南区:计划生777分/5位 南澳县:计划生760分/ ...
- 罗定中学2021年高考成绩查询,2020年罗定市各中学高考喜报!罗定中学、廷锴纪念、罗定实验均创历史...
原标题:2020年罗定市各中学高考喜报!罗定中学.廷锴纪念.罗定实验均创历史 罗定市2020年高考情况 罗定中学 广东省罗定中学,始创于1911年4月11日,由当时的罗定县公立中学和阖县中学合并而成. ...
- 汕头金山中学2021高考成绩查询入口,广东汕头最好的4所高中,2020高考再创佳绩,堪称重本后援团...
广东是我国经济比较发达的一个省份,拥有着许多其他省份享受不到的资源.经济发达的地方,教育自然也不会差,反而会更加重视教育.今天笔者就来给大家介绍一下广东省汕头市最好的4所高中,今年高考成绩已经出炉,你 ...
- 毕业季相册PSD模板中学校园合影留念纪念同学录毕业照相片书素材
毕业季纪念册PSD分层模板 是不是很棒的资源呢 各位设计大大抓紧去领取吧 下载地址:https://mdl.ink/ITo4nr
- 建水实验中学2021高考考成绩查询,高三第一次省统测成绩发布 建水实验中学低进高出、强势崛起...
原标题:高三第一次省统测成绩发布 建水实验中学低进高出.强势崛起 2019年3月20.21日,云南省教育科学研究院组织了第一次省统测,全省统一阅卷,于3月29日下发了第一次省统测成绩.建水实验中学参考 ...
- 【纪念第一次AK(泪目)】第一届ACC(AcWing Cup)全国高校联赛(初赛)(Java版)
ACC 一.4376. 数圈圈(简单) 二.4377. 农田灌溉(中等) 三.4378. 选取数对(困难) 一.4376. 数圈圈(简单) 暴力就行,唯一要注意的是Java的Integer.toStr ...
- 纪念第一次ak。。。
1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中"1 ...
- 两英中学2021高考成绩查询,2021年广东高中排名,高中高考成绩排名一览表
一所高中学校好不好,主要看生源.师资.管理.高考成绩四个方面.诚然生源.师资.管理很重要,但是最终决定孩子前途命运的还是高考成绩,况且高考成绩很好的话,其它三个必然不会差.因此,小编觉得高考成绩可以直 ...
- 普宁市中学高考成绩查询2021,2021年中山高考状元多少分是谁,中山高考状元名单资料...
2021年中山高考结束后很多小伙伴关注今年中山高考状元是谁,今年中山高考状元名单资料以及考了多少分,感兴趣的小伙伴可以去聚志愿网站(www.juzhiyuan.com)查询2021年中山高考成绩排行榜 ...
最新文章
- python itertools模块位置_Python高效编程之itertools模块详解
- 坎蒂雷赋权法 matlab,干货 | 利用MATLAB实现FMCW雷达中的常用角度估计方法
- 【WPF】如何保存RichTextBox的文本到数据库?以及如何对RichTextBox的Document做绑定?...
- 微服务启动顺序_基于华为云CSE微服务接口兼容常见问题
- 软考,个人快速成长最好的投资
- C# 实现在线软件自动升级自动下载更新文件
- 前端必会!四步带你吃透浏览器渲染基本原理
- java 字节编码_java中字符与字节的编码关系
- 用flash cs4 as 绘制图形、 绘制文本 、创建超链接文本
- xshell如何登陆数据库_Xshell怎么连接数据库?
- Delphi学习第一课
- Win10 Edge浏览器设置默认bing/google为搜索引擎教程
- JD-GUI工具下载安装
- @kubernetes(k8s) 应用配置管理(ConfigMap、subPath、Secret)
- Linux 使用rm -rf /*命令后,恢复系统方法
- 专访铃盛(RingCentral)何必苍:以不断创新的MVP赋能未来混合办公
- 将图片放大不失真,保持清晰度不变的方法
- 回忆过往,坚守初心 —— 从头记过往的搞机时光
- HFSS特殊曲线天线建模
- 孔浩java爱酷网_spring mvc学习
热门文章
- php下载到指定目录,下面这段代码如何下载到指定目录
- python的dev包怎么安装_python-dev如何安装 sudo apt-get install python-dev ?
- iOS 打点上报、无痕埋点
- HyperLynx(二)LineSim的基本操作
- 用友开发者中心全新升级,YonBuilder移动开发入门指南
- WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)
- 游戏画质修改器GFX工具箱(GFX tool)_9.9.8特别版
- Android webview 常见的优化方案
- Kubernetes容器平台架构之道
- java棒棒糖和皮卡丘八音盒_KFC用玩具提前要走了压岁钱