尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

复健

复健
📅 发布时间:2026/6/21 21:44:11
一个 afoer 的复健之路,目标 icpc au(依旧说大话

复健!

P.S. 因为前期本来复健了一点,但是现在才想起来我是不是得记录一下,所以前面的就当是回归手感了。

势必改掉乱开 \(LL\) 的坏习惯。

9.22

早上十点半来图书馆复健,做题如下。

T1 P1563 [NOIP 2016 提高组] 玩具谜题

直接异或判断方向,喜提 90 pts,下载到了一个超级大样例,看不出来是啥,但是感觉是在 0 1 反复横跳的问题。

查询题解发现没有判断 0 和 n,改完 A。

贴码

code
#include <bits/stdc++.h>
using namespace std;const int N = 1e5 + 10;int n, m, np = 1;struct node 
{int dir;string name;
} a[N];inline int check(int num) { return (num % n + n) % n; }int main()
{scanf("%d %d", &n, &m);for(int i = 1; i <= n; ++ i) cin >> a[i].dir >> a[i].name;while(m -- ){int ddir, d;scanf("%d %d", &ddir, &d);if(ddir ^ a[np].dir) np = check(np + d);else np = check(np - d);np = !np ? n : np;}cout << a[np].name;return 0;
}

对于 T2 我想做一个违背祖宗的决定,开始猪国杀

祖宗不太允许我违背,今天读题但未动手。咕咕咕

今天结束

9.23

给室友讲了数组相关

9.24

开始时间 23点07分。

今日复健二分。

二分是一种折半的思想,通过每次取半来快速逼近目标值。

取中间值 \(mid\) 然后用 \(mid\) 进行验证,如果过大,则缩小有边界,反之,缩小左边界。

T1 P1024 [NOIP 2001 提高组] 一元三次方程求解

本题是对于小数的二分,对于含小数的二分通常会设置一个 \(eps\) 来确定最小二分限度,每次的二分缩小边界也可以直接写为 \(mid\) 的赋值。

code
#include <bits/stdc++.h>
using namespace std;const double eps = 1e-5;double a, b, c, d;inline double f(double n) { return a * n * n * n + b * n * n + c * n + d; }int main()
{cin >> a >> b >> c >> d;for(double i = -100; i < 100; i += 1){if(!f(i)) printf("%.2lf ", i);else if(f(i) * f(i + 1) < 0){double l = i, r = i + 1;while(r - l > eps){double mid = (l + r) / 2;if(f(mid) * f(i) < 0) r = mid;else l = mid;}printf("%.2lf ", l);}}return 0;
}

T2 P2678 [NOIP 2015 提高组] 跳石头

分析可知,本题求解最小值的最大值,同时可以知道,我们可以通过模拟来快速查验每一个可能的距离值,因此考虑二分。

题目中数据范围为 \(int\) 不需要开 \(ll\) 。

对于本题的 \(mid\) 如果不符合则说明跳跃距离仍然过大可以缩小,所以范围开到 \(r = mid - 1\) (此处边界在过程中验证了不可),反之则 \(l = mid\)。

code
#include <bits/stdc++.h>
using namespace std;const int N = 50010;int n, m, len;int a[N];inline bool check(int lm)
{int cnt = 0, pos = 0;for(int i = 1; i <= n; ++ i){if(a[i] - pos < lm) ++ cnt;else pos = a[i];}return cnt > m;
}int main()
{cin >> len >> n >> m;for(int i = 1; i <= n; ++ i) cin >> a[i];a[ ++ n] = len;int l = 0, r = len;while(l < r){int mid = (l + r + 1) >> 1;if(check(mid)) r = mid - 1;else l = mid;}cout << l;return 0;
}

今日到此为止,截止时间 00点30分。

相关新闻

  • 大龄程序员35岁后职业发展出路:认知与思路转变
  • Python安装与Anaconda环境搭建:新手完整教程
  • 9.24 闲话

最新新闻

  • Gemini零基础实战:三明治提问、分段编辑与知识胶囊
  • 【权威发布】172号卡平台2026年6月正式新增总部直营官方邀请码:08888 - 嗨是我
  • 破解青春期沟通密码!四川专业心理机构-引导孩子健康向阳成长 - 武汉中职最新信息发布
  • 本地实体营销破局:GEO服务机构选型全维度解析 - 速递信息
  • Ollama+llama.cpp本地大模型部署实战:消费级显卡跑通Qwen2-7B全指南
  • BDPL模型:行为感知双通道学习如何提升异构序列推荐效果

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号