本文主要是介绍河南萌新联赛2024第(六)场:郑州大学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- A 装备二选一(一)
- 题目描述
- 思路
- 代码
- B 百变吗喽
- 题目描述
- 思路
- 代码
- D 四散而逃
- 题目描述
- 思路
- 代码
- F 追寻光的方向
- 题目描述
- 思路
- 代码
A 装备二选一(一)
题目描述
手中的武器会为他增加 a% 的暴击率,发生暴击时会使他本次普通攻击伤害变为原来的 b 倍。
打完boss之后掉落的武器会为他增加 c% 的暴击率,发生暴击时会使他本次普通攻击伤害变为来的 d倍。
思路
就是比较一下伤害
代码
int main()
{double a, b, c, d;cin >> a >> b >> c >> d;double bc = 1.0 + a / 100.0 * (b - 1.0);//基础伤害+发生暴击时的伤害double bn = 1.0 + c / 100.0 * (d - 1.0);if (bn > bc) cout << "YES"; else cout << "NO"; return 0;
}
B 百变吗喽
题目描述
两个字符串,第一个比第二个少一个字母,在任意一个地方添加一个字母两个字符串是否能一样
思路
判断一下两个字符串在缺少的地方之前或者后面是否完全一样,如果一样证明可以添加一个字母之后完全一样,就在这个地方添加就行,不然直接输出0
代码
int main()
{string s,t;int i,j;cin>>s>>t;s=" "+s;//因为从一开始,从0就不用t=" "+t;for( i=1;i<=s.size()&&s[i]==t[i];i++);//两个循环判断可以添加的区间for( j=t.size();j>=1&&s[j-1]==t[j];j--);if(j<=i){cout<<i-j+1<<endl;for(int k=j;k<=i;k++)//区间内完成添加cout<<k-1<<' '<<t[k]<<endl;}elsecout<<0<<endl;return 0;
}
D 四散而逃
题目描述
一个由n个格子排成一行的走廊,每个格子有a个人,每次可以从一个格子同时向两边跑(两个人必须是同一个格子)多少次可以都在两边
思路
当n=3,中间是奇数的时候就不行了,偶数可以,n>3中间只要有一个大于1,就可以,因为可以向它两边的任意位置跑,但是中间有奇数计算数量要多一次
代码
long long a[200600];
signed main()
{int n;cin >> n;for (int i = 0; i < n; i++)cin >> a[i];int res = 0, sum = 0;for (int i = 1; i < n - 1; i++)sum += a[i]/2;计算总数int ff=0;for (int i = 1; i < n - 1; i++)if(a[i]>1)//判断是否有大于1的数ff=1;for (int i = 1; i < n - 1; i++) if (a[i] % 2!= 0)res++;//奇数+1;res=res+sum;if ((n == 3 && a[1] % 2!= 0)||ff==0) //n=1特判res = -1;cout << res << '\n';return 0;
}
F 追寻光的方向
题目描述
小G所在的道路上排列着n个路灯,每个路灯发出的光亮为li 。由于视野问题,每次只能看到前方最亮的那盏灯的位置,(若前方有多个亮度值最大,则只会跑到第一个亮度值最大的位置)所以小G每次冲到最亮的那盏灯下,然后进行一次休息。现如今小G正在第一个路灯下,小G到达第n个路灯下,需要休息几次?
思路
可以倒着看看一下比最后一个数大或者等于它的有多少,当遇到的时候更新一下最后这个数的值,作最大值
代码
signed main()
{int n;cin>>n;int a[n+30];int b[n+30];for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}sort(b,b+n);int ind;int m=n;int f=0;int res=0,ans=0,k=0;int maxx=a[n-1];for(int j=n-1;j>=1;j--){if(a[j]>=maxx)ans++;maxx=max(maxx,a[j]); }cout<<ans-1;return 0;
}
这篇关于河南萌新联赛2024第(六)场:郑州大学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!