比赛链接:https://ac.nowcoder.com/acm/contest/51663

咳咳~~我突然发现牛客比赛里面,可能打的人最少的就是情人节专场了~~

因为都去陪女朋友啦~~~,只有我们单身狗才会来做吧,呜呜呜呜!

不多说,上题:

A    回眸

链接:https://ac.nowcoder.com/acm/contest/51663/A

题目描述:

已知走廊的长度是a。小红和小紫分别从走廊的两端相向而行(小红从左到右,小紫从右到左),小红初始速度为v1​,小紫的初始速度为v2​。当小红和小紫相遇的时刻,小红会让自己的速度下降至v1’​。求小红从左端走到右端一共需要花的时间。

输入描述:

四个正整数a,v1,v2,v1’,用空格隔开。

1≤a,v1,v2,v1’,≤100
v1’,<v1

输出描述:

一个浮点数,用来表示小红总共需要花费的时间。如果你的答案和标准答案的相对误差不超过10^-6,则认为你的答案正确。

示例1

输入

复制

4 2 2 1

输出

复制

3.00

说明:

小红和小紫花费1秒时间在走廊中点相遇,之后小红的速度降为1,花费2秒走到终点。

题目思路:

①首先输入各种未知数a,v1,v2,v1’。

②然后的话其实就是做物理数学题了,解方程啥的

③就是先求出相遇时间t1=a/(v1+v2);

④找到剩余路程s1=a-v1*t1;

⑤然后就是求出剩余时间t2=s1/va,最后就是求总的时间t1+t2了;

#include<bits/stdc++.h>
using namespace std;
int main()
{long long  a,v1,v2,va;cin>>a>>v1>>v2>>va;double t;double t1,t2;double s1,s2;t1=a*1.0/(v1+v2);s1=a*1.0-v1*1.0*t1;t2=s1/(va*1.0);cout<<t1+t2;return 0;
}

B    暧昧

链接:https://ac.nowcoder.com/acm/contest/51663/B​​​​​​

题目描述 :

定义一个01串的权值为:任选一个'0'和一个'1',选择不同下标的方案数。例如,"0100"的权值为3:{1,2}、{3,2}和{4,2}共三种方案。

小红想知道,长度为n的所有01串的权值之和为多少?答案请对10^9+7取模。
提示:长度为n的01串共有2^n个。

输入描述:

一个正整数n
1≤n≤10^9

输出描述:

所有长度为n的01串的权值之和,答案对10^9+77取模。

示例1

输入

复制

2

输出

复制

2

说明:

"00"和"11"的权值为0,"10"和"01"的权值为1,所以总权值为2。

题目思路:

这个类似于排列组合吧

#include<bits/stdc++.h>
using namespace std;
int main()
{long long n,s,a,t=2,mod=1e9+7;cin>>n;s=n*(n-1)/2%mod;a=n-1;while(a){if(a%2)s=s*t%mod;t=t*t%mod;a=a/2;}cout<<s;return 0;
}

C   悸动的距离

链接:https://ac.nowcoder.com/acm/contest/51663/C

题目描述:

平面直角坐标系中,小红站在A点,坐标是(xA,yA);小紫站在B点,坐标是(xB,yB)​。小红想知道,若她和小紫之间连一条线段,线段和坐标轴共有多少个交点?

输入描述:

四个整数xA,yA,xB,yB,用空格隔开。

−100≤xA,yA,xB,yB≤100

保证线段AB不在坐标轴上。保证A点和B点不重合。

输出描述:

线段AB和坐标轴的交点数量

示例1

输入

复制

1 1 -1 -1

输出

复制

1

说明

线段AB和两个坐标轴的交点重合了,因此只有一个交点。

示例2

输入

复制

3 0 0 3

输出

复制

2

说明

端点在坐标轴上也视为有交点

示例3

输入

复制

2 -1 2 3

输出

复制

1

示例4

输入

复制

-9 2 -2 9

输出

复制

0

题目思路:

①首先输入xa,ya,xb,yb,并定义一个cnt初值为0来计数(与坐标轴相交的个数)

②其实要判断是否与坐标轴相交很简单,就是一个在坐标轴上一个在坐标轴下就好啦

③因此就有xa*xb<=0或者ya*yb<=0,就让计数cnt加1

④但是这个地方要非常注意的就是,这个可能会有重复,即是通过坐标原点,因此这个地点我们需要判断一下。

⑤于是有,当xa*yb==xb*ya时,cnt减去一个1,最后就是输出cnt就结束啦

#include<bits/stdc++.h>
using namespace std;
int main()
{int xa,ya,xb,yb;cin>>xa>>ya>>xb>>yb;int cnt=0;if(xa*xb<=0){cnt++;}if(ya*yb<=0){cnt++;}if(cnt==2){if(xa*yb==xb*ya){cnt--;}}cout<<cnt;return 0;
}

E    暖色记忆

链接:https://ac.nowcoder.com/acm/contest/51663/E

题目描述:

小红拿到了一个长度为n的数组(保证n为偶数),她将进行如下操作:
1. 选择一个元素,将其染红。
2. 选择一个未被染红的元素,将其删除。
3. 使得所有被染红的元素除以2,向下取整。

小红将进行n/2次操作,操作后数组将剩下n/2个染红的元素。小红希望这n/2个数的和尽可能大,你能帮帮她吗?

输入描述:

第一行输入一个正整数n,代表数组的大小。
第二行输入n个正整数aii​,代表数组的元素。
1≤n≤10^5
1≤ai≤10^9

输出描述:

小红操作结束后,最后元素之和的最大值。

示例1

输入

复制4 1 2 3 4

1 2 3 4

输出

复制

2

说明

先选择第二个数染红,删除第一个数,然后将染红的数除以2,数组变成 [1,3,4]
然后选择将4染红,删除3,然后将染红的数除以2,数组变成 [0,2]

题目思路:

这个题目就是用排列,将从大到小把数排列出来,然后再用二进制右移运算符。将一个数的各二进制位全部右移1位,正数左补0,负数左补1,右边丢弃。然后判断是否小于n/2,满足就可以加到sum里面,然后输出sum。

#include<bits/stdc++.h>
using namespace std;
int main()
{long long n;long long a[10001000];cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1,greater<int>());long long sum = 0;for(int i = 1;i <= n;i++){for(int j = 1;j <= i;j++){a[i]=a[i]>>1;if(a[i]==0)  break;}if(i<=n/2)  sum += a[i];}cout << sum << endl;
}

这就是单身狗的比赛了,总的来说大部分题目是简单滴。但是有几个题目还是难度的,这次写了A,B,C,E的题解,剩下的有时间再补题吧,我是大菜鸟,勿喷!

干就完了呗!大学牲们冲鸭,2023年第一个比赛题解!!!

嘿嘿,run润。

牛客2023年情人节比赛 (c/c++题解)相关推荐

  1. 牛客2023年情人节比赛

    链接 A-回眸 先计算开始到相遇的时间 t1,然后计算这段时间他走过的距离 x1,用 a - x1得到x2:剩下的路程,然后除以减速后的速度即可. 参考代码: #include <bits/st ...

  2. 牛客题霸 [矩阵元素查找] C++题解/答案

    牛客题霸 [矩阵元素查找] C++题解/答案 题目描述 已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的.设计查找算法返回所查找元素的二元数 ...

  3. 牛客题霸 [栈和排序] C++题解/答案

    牛客题霸 [栈和排序] C++题解/答案 题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序 ...

  4. 牛客题霸 [字符串的排列] C++题解/答案

    牛客题霸 [字符串的排列] C++题解/答案 题解: stl真好用,emmm... 代码: class Solution {public:vector<string> Permutatio ...

  5. 牛客题霸 [ 验证IP地址] C++题解/答案

    牛客题霸 [ 验证IP地址] C++题解/答案 题目描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围 ...

  6. 牛客题霸 [表达式求值] C++题解/答案

    牛客题霸 [表达式求值] C++题解/答案 题目描述 请写一个整数计算器,支持加减乘三种运算和括号. 题解: 没有除法emmm 我们从头开始依次判断每个字符 如果是左括号,我们就找右括号,并截取括号内 ...

  7. 牛客题霸 [判断回文] C++题解/答案

    牛客题霸 [判断回文] C++题解/答案 题目描述 给定一个字符串,请编写一个函数判断该字符串是否回文.如果回文请返回true,否则返回false. 题解: 左右两端同时向中间缩 代码: class ...

  8. 牛客题霸 [分糖果问题] C++题解/答案

    牛客题霸 [分糖果问题] C++题解/答案 题目描述 一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下: 每个孩子不管得分多少,起码分到一个糖果. 任意两个相邻的孩子之间,得分较多的孩子必须拿多 ...

  9. 牛客题霸 [合并有序链表] C++题解/答案

    牛客题霸 [合并有序链表] C++题解/答案 题目描述 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的. 题解: 首先判断l1和l2是否为空 然后依次比较l1和l2的值 ...

最新文章

  1. 浅析网络营销外包中如何实现网络营销外包中的图片推广?
  2. php和java之间rsa加密互通
  3. Android项目实战(十五):自定义不可滑动的ListView和GridView
  4. java 方法 示例_Java ArrayDeque offerFirst()方法与示例
  5. springboot pom 依赖
  6. MySQL事务ACID实现原理
  7. (87)FPGA读文件激励(readmemb)
  8. 大动作!今日头条、西瓜视频并入抖音,字节梁汝波正式接任CEO
  9. Python自动控制鼠标中键滚动并截屏保存图像
  10. Sql Full-Text Filter
  11. 使用Statistic统计代码行数
  12. 局域网共享问题解决方案----日常经验总结
  13. 定时刷新页面 html,js实现定时刷新页面的代码
  14. html粘贴excel表格,如何将网页中的表格快速复制到EXCEL中|
  15. 粒子群算法(PSO)基本原理
  16. python 针对二分类问题画roc曲线
  17. Redis高级项目实战!mysql和java的管理系统源码
  18. 测试部门KPI考核指标(绩效考核)
  19. Tkinter Cursors
  20. 《位置大数据隐私管理》—— 1.3 LBS中的个人隐私与挑战

热门文章

  1. C++中string类函数常用函数大全
  2. 订单里面有多个商品的问题怎么解决
  3. 密码学基础:Base64编码
  4. 一个团队(很多人)都存在的共性问题
  5. 川土微电子 | 超小型封装隔离式半双工485收发器
  6. 精制糖行业采用树脂工艺进行脱色技术分析
  7. c语言课程设计学生信息管理系统
  8. CSP-J 2021_3_网络连接
  9. 从乔布斯卸任看苹果未来三年 会否半途而废?
  10. 粤嵌6818开发板项目