反思

首先,先悔恨一下这次的比赛成绩。

这次比赛的教训就是,简单的题目一定要打不要被复杂的题面震慑到,以及变量名不能是保留字,如第一题的x1,y1,要开long long,计算好数据范围,如第三第四题。

T1

代码思路

        暴力枚举宝石矿边上的每一个点(整数,且是边上的点,显而易见边上的点一定比中间的点要近),找出最小值排序输出即可;注意小数精度问题。

AC代码

#include<bits/stdc++.h>
using namespace std;const int N = 1e6+10;
struct Node{double xx,yy;
}a[N];
int xx1,yy1,x22,yy2,n,id; double func(double xx,double yy){double minn = 1e9;for(int i = xx1; i <= x22; i++){minn = min(minn,sqrt(pow(i-xx,2)+pow(yy1-yy,2)));}for(int i = xx1; i <= x22; i++){minn = min(minn,sqrt(pow(i-xx,2)+pow(yy2-yy,2)));}for(int i = yy1; i <= yy2; i++){minn = min(minn,sqrt(pow(xx1-xx,2)+pow(i-yy,2)));}for(int i = yy1; i <= yy2; i++){minn = min(minn,sqrt(pow(x22-xx,2)+pow(i-yy,2)));}return minn;
}int main(){freopen("cow.in","r",stdin);freopen("cow.out","w",stdout);ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);double mn = 1e9;cin >> n >> xx1 >> yy1 >> x22 >> yy2;for(int i = 1; i <= n; i++){cin >> a[i].xx >> a[i].yy;}for(int i = 1; i <= n; i++){double nw = func(a[i].xx,a[i].yy);if(nw < mn){mn = nw;id = i;}printf("%.9lf ",nw);}printf("\n%d",id);return 0;
} 

T2

代码思路

        首先讲一下如何处理操作1,2,就拿map存每个数出现的次数,存加去减即可。

        然后预处理1e5以内的数的因数是哪些,循环遍历x的因数,看看map中是否存在,再计算出最大的k即可。

代码

#include<bits/stdc++.h> 
using namespace std;const int N = 1e5+10; map<int,int> mp; //出现次数 
vector<vector<int>> a(N); //存因数 void init(){for(int i = 1; i <= N; i++){for(int j = i; j <= N; j += i){a[j].push_back(i);}}
}int mx_k(int d,int x){if(d == 1) return 0;int k = 0;while(x%d == 0){x/=d;k++;}return k;
}int query(int x){int mxx = 0;for(int i = 0; i < a[x].size(); i++){int d = a[x][i];if(d == 1) continue;if(mp.find(d) != mp.end() && mp[d] > 0){int k = mx_k(d,x);if(k > mxx){mxx = k;}}}return mxx;
}int main() {freopen("set.in","r",stdin);freopen("set.out","w",stdout);ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);init();int n,q;cin >> n >> q;for(int i = 1; i <= n; i++){int x; cin >> x;mp[x]++;}while(q--){int op,x;cin >> op >> x;if(op == 1) mp[x]--;else if(op == 2) mp[x]++;else cout << query(x) << endl;}return 0;
}

T3

代码思路

       按照题意建边即可,但是第二个建边要求直接暴力会超时,思考一下,可以直接建i到i-1的边跑dijkstra就行了。还要注意数据范围开2e6+10即可。

代码

#include<bits/stdc++.h>
using namespace std;typedef pair<int,int> PII;
const int N =2e6+10;
int h[N],e[N],ne[N],w[N],idx,dist[N];
int n,m;
bool s[N];void add(int a,int b,int c){e[idx] = b;w[idx] = c;ne[idx] = h[a];h[a] = idx;idx++;
} void dijkstra(int st){memset(dist,0x3f,sizeof dist);memset(s,0,sizeof s);dist[st] = 0;priority_queue<PII,vector<PII>,greater<PII> > heap;heap.push({dist[st],st});while(!heap.empty()){auto t = heap.top();heap.pop();int k = t.second,dis = t.first;if(s[k]) continue;s[k] = 1;for(int i = h[k]; i != -1; i = ne[i]){int j = e[i];if(!s[j]){if(dist[j] > dis+w[i]){dist[j] = dis+w[i];heap.push({dist[j],j});}}}}
}int main(){freopen("paths.in","r",stdin);freopen("paths.out","w",stdout);ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); memset(h,-1,sizeof h);cin >> n >> m;for(int i = 1; i < n; i++){int j = i+1;add(i,j,abs(i-j)),add(j,i,abs(i-j));}for(int i = 1; i <= m; i++){int a,b,z; cin >> a >> b >> z;add(a,b,z),add(b,a,z);}dijkstra(1);for(int i = 2; i <= n; i++){cout << dist[i] << " ";}return 0;
} 

T4

代码思路

        很明显是个dp思路因为要分阶段求最优方案,我们可以看成01背包,因为每个任务只能做一次,而“总背包空间”就是两重约束,其中多余的生命值可以转化为体力值。之后正常dp即可,要注意最优方案我们需要从0枚举到生命值,以及0到体力值+剩余生命值,的最大值即可,还要开long long。

代码

#include<bits/stdc++.h>
using namespace std;int n,H,K; 
const int N = 1e3+10;
long long k[N],w[N],h[N],dp[N][N];int main(){freopen("adventure.in","r",stdin);freopen("adventure.out","w",stdout);ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n >> H >> K;for(int i = 1; i <= n; i++) cin >> h[i] >> k[i] >> w[i];for(int i = 1; i <= n; i++){for(int j = H; j >= h[i]; j--){for(int f = H+K-j; f >= k[i]; f--){dp[j][f] = max(dp[j][f],dp[j-h[i]][f-k[i]]+w[i]);}}}long long mxx = -1e9;for(int i = 0; i <= H; i++){for(int j =0; j <= H+K-i; j++){
//			cout << dp[i][j] << " ";mxx = max(mxx,dp[i][j]);}
//		cout << endl;}cout << mxx << endl;return 0;
} 

继续努力,加油!!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open CASCADE学习|非线性方程组求解技术详解

引言 在几何建模与工程计算中&#xff0c;非线性方程组的求解是常见的核心问题。Open CASCADE&#xff08;以下简称OCC&#xff09;作为开源的几何建模内核&#xff0c;提供了丰富的数学工具库&#xff0c;其中math_FunctionSetRoot类专为求解非线性方程组设计。本文将深入探讨…

科技初创企业创新推动商业未来

在这个因变革而蓬勃发展的世界里&#xff0c;科技初创企业已成为各行业创新、颠覆与转型的驱动力。这些雄心勃勃的企业正在重塑商业格局&#xff0c;挑战既定规范&#xff0c;并不断突破可能性的边界。本文将深入探索科技初创企业的精彩领域&#xff0c;探讨它们如何通过创新塑…

霍尼韦尔HMR2300-D00-485数字模块

型号&#xff1a;HMR2300-D00-485 类型&#xff1a;数字通信模块&#xff08;RS-485接口&#xff09; 制造商&#xff1a;霍尼韦尔&#xff08;Honeywell&#xff09;&#xff0c;隶属于其工业自动化或楼宇自动化产品线。 典型用途&#xff1a; 用于扩展主控制器&#xff08;如…

如何在 Windows 11 或 10 上更改 WIFI 或以太网 MAC 地址?

无论你使用的是哪种操作系统,更改 MAC 地址在各种场景中都有其益处。每个网卡的 MAC 地址都是唯一的,由网络适配器在出厂时就已经分配完成;它帮助系统在物理网络上进行通信,并为其提供身份识别。然而,如果你出于某种合法原因想要更改 Windows 上的当前 MAC 地址,那么我们…

Python语法特点与编码规范

注释 单行注释 把#号当做注释符号 多行注释 python中并没有规定多行注释标记&#xff0c;通常使用单引号作为多行注释 中文注释 规定文件所用编码&#xff0c;当时是为解决python2不支持中文的问题 #codingutf-8代码缩进 python采用代码缩进和冒号区分代码层次&#xff0c…

跟Gemini学做PPT:字号选择

字号的选择对于 PPT 的可读性和视觉效果至关重要。以下是一些通用的建议和针对你具体情况的字号选择指南&#xff1a; 通用字号选择原则&#xff1a; 对比度&#xff1a; 文字颜色与背景颜色形成高对比度&#xff0c;确保易读。字体&#xff1a; 选择清晰、专业的字体&#x…

【JVM 03-JVM内存结构之-虚拟机栈】

虚拟机栈 笔记记录 1. 定义1.1 演示栈帧 2. 特点3. 线程运行诊断3.1 案例1 cpu占用过多&解决3.2 案例2 程序运行很长时间没有结果 4. 拓展知识&问题辨析4.1 栈的内存越大越好嘛&#xff1f;(不是)4.2 方法内的局部变量是否线程安全&#xff1f;(是线程安全的)4.2.1 局部…

文章记单词 | 第104篇(六级)

一&#xff0c;单词释义 keyboard /ˈkiːbɔːrd/ n. 键盘underlying /ˌʌndərˈlaɪɪŋ/ adj. 潜在的&#xff1b;根本的&#xff1b;基础的June /dʒuːn/ n. 六月tactics /ˈtktɪks/ n. 战术&#xff1b;策略&#xff1b;手段south /saʊθ/ n./adj./adv. 南方&#x…

中宏立达与天空卫士达成战略合作

战略合作篇 中宏立达-天空卫士 2025年5月23日&#xff0c;中宏立达与天空卫士在中宏立达集团总部北京丽金智地中心正式签署战略合作协议。中宏立达总经理王博先生与天空卫士高级副总裁兼首席运营官巩文坚先生代表双方签署协议。这标志着两家领军企业在数字安全领域的深度合作正…

RxJS 高阶映射操作符详解:map、mergeMap 和 switchMap

1. map 操作符 map 是最基本的转换操作符&#xff0c;用于对 Observable 发出的每个值进行一对一转换。 基本特点&#xff1a; 同步操作一对一转换不改变 Observable 的发出时机 详细示例&#xff1a; import { of } from rxjs; import { map } from rxjs/operators;// 示…

基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)

由于一直在调试本项目&#xff0c;好久没有发文章&#xff0c;最近本项目的PID调试初见成效&#xff01;开始正文前首先感谢各位粉丝的支持&#xff0c;以及对本项目技术上支持的老师以及师兄&#xff0c;谢谢你们&#xff01; 对应源码及文件&#xff1a;源码及文件下载 基于…

量子传感器:开启微观世界的精准探测

随着量子技术的飞速发展&#xff0c;量子传感器逐渐成为前沿科技领域的热门研究方向。量子传感器利用量子力学的特性&#xff0c;能够实现对物理量的极高精度测量&#xff0c;其应用范围涵盖了基础科学研究、医学诊断、环境监测以及国防安全等多个领域。本文将深入探讨量子传感…

河道管网排口在线监测系统解决方案

一、方案概述 我国作为世界上河流数量最为丰富的国家之一&#xff0c;拥有众多历史悠久的壮阔江河流域。然而&#xff0c;伴随经济社会的迅猛发展&#xff0c;河湖管理与保护面临诸多新挑战&#xff0c;诸如河道干涸、湖泊萎缩、水环境恶化以及河湖功能退化等问题&#xff0c;对…

Foldseek快速蛋白质结构比对

1. 下载和安装 Foldseek 如果只是单个蛋白质结构的序列比对&#xff0c;我们只需要用Foldseek 的网站服务 https://search.foldseek.com/search 上传我们的蛋白质结构并选择想要进行比对的数据库即可&#xff0c;这里不做重点讲解。做生物信息学研究&#xff0c;我们难免需要批…

宏山激光韩国釜山开放日圆满举行,服务本地化再提速

5月21日-22日&#xff0c;宏山激光在韩国釜山展厅举办了主题为“韩国本地服务领导者”的开放日活动&#xff0c;此次活动聚焦韩国市场&#xff0c;通过沉浸式参观和深度交流&#xff0c;全面展示宏山激光本地化服务体系的建设成果&#xff0c;彰显其服务本地、深耕市场的坚定决…

大模型「瘦身」指南:从LLaMA到MobileBERT的轻量化部署实战

大模型「瘦身」指南&#xff1a;从LLaMA到MobileBERT的轻量化部署实战 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 大模型「瘦身」指南&#xff1a;从LLaMA到MobileBERT的轻量化部署实战摘要引言一、轻量化技术…

JavaScript篇:函数作用域与作用域链探秘

大家好&#xff0c;我是江城开朗的豌豆&#xff0c;一名拥有6年以上前端开发经验的工程师。我精通HTML、CSS、JavaScript等基础前端技术&#xff0c;并深入掌握Vue、React、Uniapp、Flutter等主流框架&#xff0c;能够高效解决各类前端开发问题。在我的技术栈中&#xff0c;除了…

Robust Kernel Estimation with Outliers Handling for Image Deblurring论文阅读

Robust Kernel Estimation with Outliers Handling for Image Deblurring 1. 论文的研究目标与实际问题意义1.1 研究目标1.2 实际问题与产业意义2. 论文的创新方法、模型与优势2.1 核心思路2.2 关键公式与技术细节2.2.1 非线性模糊模型与能量函数2.2.2 中间潜像更新与IRLS2.2.3…

nginx配置跨域请求,后台不用配置啦,完美

允许全部把域名改* server { listen 22222; server_name localhost; location / { if ($request_method OPTIONS) { add_header Access-Control-Allow-Origin http://localhost:8080; add_header Access-Control-Allow-Headers *; add_header Access-Control-…

[特殊字符] 构建高内聚低耦合的接口架构:从数据校验到后置通知的分层实践

在现代企业系统开发中&#xff0c;接口结构设计的质量直接影响系统的稳定性、扩展性与可维护性。随着业务复杂度上升&#xff0c;单一层次的接口实现往往难以应对功能膨胀、事务一致性、后置扩展等需求。因此&#xff0c;我们提出一种面向复杂业务场景的接口分层模型&#xff0…