浙江广厦大学第七届程序设计比赛(重现赛)(个人题解)(未完成)

news2024/10/6 4:10:27

前言:

  今天晚上实验室的一场比赛,题目难度感觉还行,有几道题大家都没做出来,老规矩,这些没写出来的题都放在这,等我有能力补的时候再来写。

正文:

原比赛链接:(1条未读私信) 浙江广厦大学第七届程序设计比赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A 种植所有植物所需时间:

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
	int n;long long ans=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		ans+=x;
	}
	int cnt=ans;
	ans/=50;
	if(cnt%50!=0)ans++;
	cout<<ans*5<<endl;
	return 0;
}

  简单求和后向上取整,注意数据量有1e7,记得取消同步流。

B 小马喝水:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
long double x, x2, y, y2;
int main(){
    cin>>x>>y>>x2>>y2;
    y=-y;  
    ll d=sqrt((x - x2)*(x - x2)+(y - y2)*(y - y2));
    cout<<d;
    return 0;
}

在坐标系下投影后求直线长度,注意数据范围很夸张,要用long double不然会出错。

C 菠萝蜜多斩(待补):

D 扫雷游戏:

#include <bits/stdc++.h>
using namespace std;
char a[1005][1005];
int b[1005][1005];
int main(){
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)
            cin>>a[i][j];
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]=='*') b[i][j]=-1;
            else{
                if(a[i-1][j]=='*') b[i][j]++;
                if(a[i+1][j]=='*') b[i][j]++;
                if(a[i][j-1]=='*') b[i][j]++;
                if(a[i][j+1]=='*') b[i][j]++;
                if(a[i-1][j-1]=='*') b[i][j]++;
                if(a[i+1][j+1]=='*') b[i][j]++;
                if(a[i+1][j-1]=='*') b[i][j]++;
                if(a[i-1][j+1]=='*') b[i][j]++;
            }}
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)
            cout<<b[i][j]<<" ";
            cout<<endl;
    }
    return 0;
}

简单暴力。

E 始皇一问:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long fac[2000005];
long long inv[2000005]; //inv[i]存储fac[i]的逆元
const long long mod = 998244353;
long long fastMul(long long a, long long b, long long mod){
    long long res = 0;
    while(b){
        if (b & 1){
            res = (res + a) % mod;
        }
        a = (a + a) % mod;
        b >>= 1;
    }
    return res;
}
long long fastPowMod(long long a, long long n, long long mod){
    if(n==0&&a!=0)return 1;
    if(n!=0&&a==0)return 0;
    long long base = a;
    long long res = 1;
    while(n){
        if (n&1){
            res = fastMul(res, base, mod);
        }
        base = fastMul(base, base, mod);
        n >>= 1;
    }
    return res % mod;
}
void init(){
    fac[0]=1;
    for (int i=1;i<=2000000;i++){
        fac[i]=(fac[i-1]*i)%mod;
    }
    inv[2000000]=fastPowMod(fac[2000000],mod-2,mod);
    for (int i=2000000-1;i>=0;i--){
        inv[i] = ((i + 1) * inv[i + 1]) % mod;
    }
}
long long C(long long n, long long m){
    return((fac[n] * inv[m])%mod*inv[n-m])%mod;
}
int main(){
    init();
    int t;
    cin>>t;
    while(t--){
    	int a,b;
    	cin>>a>>b;
        cout<<C(a+b-2,min(a-1,b-1))<<endl;
    }
    return 0;
}

预处理阶乘和逆元,然后根据输入数据代入排列组合的公式,分号上面用阶乘,下面用逆元(因为mod为素数,直接用费马小定理求),最后得出答案。

F 压缩文章:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
    string s;cin>>s;
    for(int i=0;i<s.size();i++){
        int j=i;
        while(s[i]==s[j]){
            j++;
        }
        cout<<(j-i)<<s[i];
        i=j-1;
    }
    return 0;
}

简单模拟,先输出次数,再输出该数。

G 原神启动 (hard):

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[10000005];
ll n,k,tot;
bool check(ll x){
	int cnt=0,ans=0;
	for(int i=1;i<=n;i++){
		cnt+=a[i];
		if(cnt>=x){
			ans++;
			cnt=0;
		}
		//cout<<x<<" "<<ans<<endl;
	}
	if(ans>=k)return true;
	return false;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];tot+=a[i];
	}
	if(tot<k){
		cout<<-1<<endl;
		return 0;
	}
	ll l=1,r=tot,mid;
	while(l<r){
		mid=l+r+1>>1;
		if(check(mid))l=mid;
		else r=mid-1;
	//	cout<<l<<" "<<r<<endl;
	}
	cout<<l<<endl;
	return 0;
}

二分答案,check函数内用贪心思维,只要原石够就直接开抽,如果原石总数小于k就输出-1.

H 原神启动 (easy):

#include <bits/stdc++.h>
using namespace std;
const int N = 1e7 + 10;
typedef long long LL;

int main() {
	int n, k;
	cin >> n >> k;
	LL res = 0;
	for (int i = 1; i <= n; i++) {
		int x;
		scanf("%d", &x);
		res += x;
	}
	if(res < k){
		cout << "-1";
		return 0;
	}
	int l = 1, r = res;
	while (l < r) {
		int mid = l + r + 1 >> 1;
		if (res / mid >= k)
			l = mid;
		else
			r = mid - 1;
	}
	cout << l;
	return 0;
}

上题的简单版本,算出能抽的总次数即可。

I 古神话(待补):

J 青铜门下(待补):

后记:

  最后剩下的考试不多了,也快要临近暑假了,暑假实验室有训练,我和两个队友也报了暑假牛客多校比赛(不知死活),最近会开始系统的来刷题了,希望自己能不要松懈,争取在暑假开始前把牛客上算法基础精选题单大致刷一边吧希望在这个暑假后自己的能力能得到长足的进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1830273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NASA数据:南极海洋生物资源

Antarctic Marine Living Resources (AMLR) program 南极海洋生物资源许可证 南极海洋生物资源保护委员会公约区受到管制。任何打算从该区域捕获海洋生物的人都必须获得许可证。 简介 美国是南极海洋生物资源保护委员会&#xff08;Commission for the Conservation of Anta…

热管式换热器

热管式换热器是一种高效、紧凑的换热设备&#xff0c;其核心部件是热管。热管技术基于热管内部工作介质&#xff08;通常是液体&#xff09;的相变原理来传递热量&#xff0c;能够实现快速、大温差的热量传输&#xff0c;特别适用于需要高效换热或者在空间受限条件下进行热能交…

【APP_汽修宝】数据采集案例APP_数据解密分析

如果不会写代码&#xff0c;那就出书、写博客、做视频、录播客。 &#x1f4da; S35赛季末王者昭君罗 关键代码定位 使用方法【逆向-快速定位关键代码】通过hook常用函数HashMap方法 动态分析 下面是我们通过访问目标页面时 Frida hook 捕获HashMap的调…

Linux之BCC 性能工具的移植和使用

一、bcc 工具 bcc 的全称&#xff1a;BPF Compiler Collection BCC&#xff08;BPF Compiler Collection&#xff09;是一个用于创建高效的内核跟踪和操作程序的工具包&#xff0c;包含了几个有用的工具和示例。它利用了扩展的BPF&#xff08;Berkeley Packet Filters&#x…

【C/C++】【学生成绩管理系统】深度剖析

可接各类C/C管理系统课设 目录 实现功能 部分1&#xff1a;系统设置和主菜单 1. 引入头文件 2. 定义结构体 3. 函数声明 4. 主函数 部分2&#xff1a;添加学生信息 部分3&#xff1a;删除学生信息 部分4&#xff1a;修改学生信息 部分5&#xff1a;查询学生信息 部分…

大众点评_token,mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁止转载&#xff0…

以太网基础知识(三)—FEC概念以及编码原理介绍

1&#xff1a;前言 KR4(528,514) FEC表示的意思&#xff1a; KR4 RS(528,514) FEC 是一种以太网中使用的FEC&#xff08;Forward Error Correction&#xff09;编码方案。在这个方案中&#xff0c;采用的是Reed-Solomon (RS) 编码算法&#xff0c;它被设计用于提高数据传输的…

9M高速USB转接芯片CH347转双串口转I2C转SPI转JTAG转SWD

1、概述 CH347 TSSOP20封装和丝印 CH347 是一款高速 USB 总线转接芯片&#xff0c;通过 USB 总线提供异步串口、I2C 同步串行接口、SPI 同步串行接口和 JTAG 接口等。 在异步串口方式下&#xff0c;CH347 提供了 2 个高速串口&#xff0c;支持 RS485 串口收发使能控制、硬件流控…

论文阅读:基于谱分析的全新早停策略

来自JMLR的一篇论文&#xff0c;https://www.jmlr.org/papers/volume24/21-1441/21-1441.pdf 这篇文章试图通过分析模型权重矩阵的频谱来解释模型&#xff0c;并在此基础上提出了一种用于早停的频谱标准。 1&#xff0c;分类难度对权重矩阵谱的影响 1.1 相关研究 在最近针对…

SN74HC14+陶瓷振子做振荡器的试验初步

本想试验一下465khz用SN74HC14做振荡器&#xff0c;实验了很多次&#xff0c;无法起振。 用1M&#xff0c;4M的也无法起振&#xff0c;用到10Mhz时&#xff0c;能起振&#xff0c;用小频谱仪看&#xff0c;谐波相当丰富&#xff0c;从10M到300Mhz&#xff0c;当然我是通过实验在…

python14 字典类型

字典类型 键值对方式&#xff0c;可变数据类型&#xff0c;所以有增删改功能 声明方式1 {} 大括号&#xff0c;示例 d {key1 : value1, key2 : value2, key3 : value3 ....} 声明方式2 使用内置函数 dict() 创建1)通过映射函数创建字典zip(list1,list2) 继承了序列的所有操作 …

第零篇——数学到底应该怎么学?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 宏观讲解数学定位&#xff0c;数学学习方式方法&#xff0c;再次详细学习…

C# OpenCV 部署RecRecNet广角图像畸变矫正

C# OpenCV 部署RecRecNet广角图像畸变矫正 目录 说明 效果 模型信息 项目 代码 下载 说明 ICCV2023 - RecRecNet: Rectangling Rectified Wide-Angle Images by Thin-Plate Spline Model and DoF-based Curriculum Learning 参考&#xff1a; https://github.com/Kang…

Vue52-scoped样式

一、scoped样式的作用 1-1、scoped样式的作用 vue中组件的样式都是汇总到一起的。容易出现一个问题&#xff1a;类名冲突。 示例&#xff1a; school和student组件的类名都叫demo&#xff0c;则student的样式将覆盖school的样式&#xff0c;因为App.vue中&#xff0c;先引入的…

Spring事务管理、SpringAop

目录 ​编辑 Spring事务管理 注解:Transactional rollbackFor 事务属性-传播行为 propagation SpringAOP AOP核心概念 通知类型 通知顺序 切入点表达式 切入点表达式-execution 切入点表达式-annotation 连接点 ​编辑 将案例中 增、删、改 相关接口的操作日志记…

unity跑酷游戏(源码)

包括&#xff1a;触发机关&#xff0c; 优化 fog的调试 效果 碰到障碍物游戏时间暂停&#xff08;挂载到障碍物上&#xff09; 上面需要有碰撞体 游戏物体上需要有标签 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Barri…

【仿真建模-anylogic】FlowchartBlock原理解析

Author&#xff1a;赵志乾 Date&#xff1a;2024-06-17 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 类图 2. 原理解析 2.1 核心函数 函数功能FlowchartBlock(Engine engine ,Agent owner, AgentList population )构造函数&#xff…

C语言王国——深入自定义类型(结构体)

目录 一、引言 二、结构体 1. 结构体类型的声明 2. 结构体变量的创建和初始化 2.1 创建 2.2 初始化 2.3 typedef 2.4 特殊声明 2.5 自引用 3. 结构成员访问操作符 4. 结构体内存对齐 4.1 对齐规则 4.2 offsetof 4.3 为什么存在内存对齐 5. 结构体传参 6. 结构体实现…

仅靠独立网站也能赚到100万,真的太牛了

你听说过 Photopea 吗&#xff1f;这是一个免费的类似 Photoshop 的图像编辑器。 这个项目&#xff1a; 每月1300万访问量每月150万用户使用小时每月10万美元的广告收入 Photopea 项目的天才创造者是 Ivan Kutskir。 令人惊讶的是&#xff0c;他独自处理了每日50万用户&…

数组趣味玩法:在Java SE中尝试创新玩法

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…