首页 > 编程语言 >第二十一届宁波大学程序设计竞赛(同步赛) A,B,D,F,H题解

第二十一届宁波大学程序设计竞赛(同步赛) A,B,D,F,H题解

时间:2024-06-01 20:29:07浏览次数:16  
标签:int 题解 宁波大学 else ++ num 程序设计 mx

链接:

第二十一届宁波大学程序设计竞赛(同步赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A:直接输出 不多解释

B:

B-Love You Guys_第二十一届宁波大学程序设计竞赛(同步赛) (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;

int x,y,a,b; 

int main()
{
	cin>>x>>y>>a>>b;
	int cnt=a;
	int num=0;
	int X=x;
	while(x>=0)
	{
		x-=cnt+num*b;
		num++;
		x+=y;
		//cout<<x<<endl;
		//if(x<0) break;
		if(x>=X) x=X;
	}
	if(num!=0)cout<<num<<endl;
    else cout<<1<<endl;
	return 0;
}

注意 可能一开始就过挂科了 所以对num==0 特判一下;

D:

D-爱丽丝,来扫除啦!(Easy Version)_第二十一届宁波大学程序设计竞赛(同步赛) (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;

int n;
map<double,int>mp;
map<double,int>mp2;
int a[10];
int main()
{
    int mx=-1;
    cin>>n;
    int f=0;
    while(n--)
    {
        double x,y;
        cin>>x>>y;
        if(x==0.0&&y==0.0) 
        {
            f++;
            continue;
        }
        else if(x==0.0)
		{
			if(y>0) a[0]++;
			else a[1]++;
			
		} 
		else if(y==0.0)
		{
			if(x>0) a[2]++;
			else a[3]++;
		} 
        else
        {
            double num=y/x;
           if(x>0&&y>0||x<0&&y>0)
           {
		   		mp[num]++;
		   		mx=max(mp[num],mx);
		   }
		   else 
		   {
		   		mp2[num]++;
			   	mx=max(mp2[num],mx);
		   }
        }
    }
   	sort(a,a+4,greater<int>());
   	mx=max(mx,a[0]);
    cout<<mx+f<<endl;
    
    
    
    return 0;
}

射线经过的点集合可以根据斜率来合并点的集合,用map 来计数。

因为存在x==0或y==0的情况,所又用了a数组来存储。

题目数据比较细节,若出现(0,0)那么所有点是都可以经过的 所以mx++。

另外因为是射线,所以是要按区间分的。

F:

F-奇数Alice偶数Bob!_第二十一届宁波大学程序设计竞赛(同步赛) (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

int n;


int main()
{
	cin>>n;
	vector<int>a;
	for(int i=0;i<n;i++)
	{
		int x;
		cin>>x;
		a.push_back(x); 
	}
	if(n%2==1) cout<<"Yukimi"<<endl; 
	else{
		sort(a.begin(),a.end());
		int mn=a[0];
		int cnt=n;
		for(int i=1;i<n;i++)
		{
			if(a[i]!=mn) cnt++;
		}
		//cout<<cnt<<endl;
		if(cnt%2==1) cout<<"Yukimi"<<endl;
		else cout<<"LCF"<<endl;
	}
	
	
	return 0;
}

有点博弈的感觉,我还没怎么接触过这类题,好在这题比较好过。

首先分石头总的堆数,若是奇数就直接胜利。

什么?为什么?

其实要赢的话 就是维护石头非零堆数为偶数的过程(对手选的时候为偶数堆),一开始就是奇数的话 直接选任意一堆变为0 对手不得不跟着你把石堆变成0 最后一步必然是你选的,那么对手必输。

那偶数呢?一定会输吗? 不!会赢的!(可能)

由于先手是我方选择,那么就可以将其他非最小的石堆变成当前最小值,这样对手回合又是偶数堆了,但对手同样也可以这样干,就这样两方不断维护偶数石堆,但最小值必然会全部变成一样,这样双方就只能把石堆的数值变成0(反正最后肯定会变成0,省去过程了)

那这样就只要计数 看有多少次非最小的石堆供我方选择。

若为奇数,其实就是和石堆数为奇数时一样了,胜利!

若为偶数,很遗憾,失败 QWQ。

H:

H-后缀0_第二十一届宁波大学程序设计竞赛(同步赛) (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;



int main()
{
 	ll t;
 	cin>>t;
 	while(t--)
 	{	
 		ll n;
	 	cin>>n;
		if(n<=3) cout<<0<<endl;
		else
		{
			n=n-3+5-1;
			ll cnt=0;
			while(n)
			{
				
				cnt+=n/5;
				n=n/5;
			}
			cout<<cnt<<endl;
		}
	}
 	
	 return 0;
}

打表找规律 (如果你很强 通过数学方法 证明出来了 我承认,你很强   qwq)

1-3    为 0

之后每5一组

但要注意 每隔5^n那组数值都会多1   (最后写的时候猜出来的  毕竟要接近答案 哈哈)

其他题目还没写出来 有时间会补(应该)

看到这里了 点个赞吧  !

THE  END

标签:int,题解,宁波大学,else,++,num,程序设计,mx
From: https://blog.csdn.net/mrblacks0/article/details/139376830

相关文章

  • atcoder350,351,352,353,354,355期部分题解
    声明:有些题感觉已经说到很明白了,就先不写代码了,有空会补上目录350D: newfriend350E:toward0351D:GridandMagnet352D:permutation subsequence353C:sigmaproblem353D:anothersigmaproblem354C:atcodermagics355C:bingo2355D:intersectingintervals......
  • 【并发程序设计】13.信号机制
    13.信号机制概念:信号机制是Unix、类Unix以及其他POSIX兼容的操作系统中的一种进程间通讯方式,它允许进程在发生特定事件时接收通知。信号机制是操作系统中的一个重要概念,它提供了一种异步的通知机制,用于在进程之间传递消息。信号可以被看作是一种软中断,它们可以在任何时间......
  • 【问题解决】MySQL恢复数据库报错Unknown command '\''.
    问题使用以下命令备份恢复数据库,恢复失败提示ERRORatline39595:Unknowncommand'\''.#备份数据库mysqldump-uusername-p--no-create-db-Rdatabasename>dump.sql#恢复数据库mysql-uusername-pdatabasename2<dump.sql问题原因及解法原因:中文字符的问题......
  • P6156 简单题 题解
    P6156简单题题解题目大意题目传送门给定\(n,k\),求\(\sum_{i=1}^n\sum_{j=1}^n(i+j)^k\gcd(i,j)\mu^2(\gcd(i,j))\)。\(1\leqn\leq5\times10^6\)题目分析先推导一波式子:\[\begin{aligned}ans&=\sum_{i=1}^n\sum_{j=1}^n(i+j)^k\gcd(i,j)\mu^2(\gcd(i,j))\\&=......
  • 磁盘管理后续——盘符漂移问题解决
    之前格式化磁盘安装了文件系统,且对磁盘做了相应的挂载,但是服务器重启后挂载信息可能有问题,或者出现盘符漂移、盘符变化、盘符错乱等故障,具体是dev/sda,sdb,sdc等等在某些情况下会混乱掉比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混乱,最常见......
  • 2024ICPC武汉邀请赛E. Boomerang 题解
    E-Boomerang(动态维护树的直径+二分)分析代码实现#include<bits/stdc++.h>#ifdefLOCAL#include"algo/debug.h"#else#definedebug(...)42#endif#defineintlonglongusingEdge=int;structHLD{ intn,times=0; std::vector<int>siz,top,......
  • ARC119F 题解
    blog。被自动机做法恶心到了,现在也来恶心一下大家。\(\color{red}\textbf{以下内容强烈建议自己推一遍,几乎一半是重复的,推完会很爽,并且理解会很深。}\)\(\color{red}\textbf{以下内容不建议用}\LaTeX\textbf{书写,因为写起来像在吃大便。}\)暴力\(dp_{i,a,b}\)表示当前在\(......
  • 【题解】UOJ#284 快乐游戏鸡
    题目大意给出一棵有\(n\)个节点的树,编号为\(i\)的点权为\(w_i\),在树上通过一条边需要花费时间\(1\),如果能通过一个点权为\(w_i\)的点当且仅当此时的死亡次数大于等于\(w_i\),否则会立即回到起点并且死亡次数加一。给出\(q\)组询问,每组询问给出起点\(s\)和终点\(t\),......
  • CF1981D题解
    CF1981D题解前言标签:筛法,欧拉回路。赛后过的,构造一眼秒,欧拉图写错了,多少有点抽象。题意构造一个长度为\(n\)的序列\(a\),需要满足:\(\forall1\lei\len\),\(1\lea_i\le3\times10^5\)。\(\forall1\lei<j<n\),\(a_i\timesa_{i+1}\nea_j\timesa_{j+1}\)。......
  • JAVA【案例4-8】模拟物流快递系统程序设计
    【模拟物流快递系统程序设计】1、案例描述网购已成为人们生活的重要组成部门,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中。而在送货期间,物流管理人员可以在系统中查看所有物品的物流信息。编写一个模拟物流快递系统的程序,模拟后台系统处......