当前位置: 首页 > news >正文

【CF】Day73——Codeforces Round 887 (Div. 2) B (思维 + 模拟)

B. Fibonaccharsis

题目:

思路:

比C题有意思,但也么意思

对于这一题我们可以考虑最小的情况,即 f0 = 0,f1 =1 时,然后看看什么时候会超过 n 的最大值,我们可以发现 k > 30 时就炸了,所以如果 k > 30 就可以直接输出 0

然后我们讨论 k <= 30 的情况即可,我们发现如果正向考虑是很难的,所以我们反向考虑

我们既然知道最后一位,那我们尝试枚举前一位是什么,其范围一定在 0 ~ n 中,然后根据公式我们直接一个一个往前枚举即可,只要有某一位小于 0,那么就不行,否则最后一定满足 a[0] >= 0,此时我们取这个即可,时间复杂度最坏为 n*30 可以过 

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, k;cin >> n >> k;if (k >= 30){cout << "0\n";return;}int cnt = 0;vector<int> f(31, 0);f[k] = n;int flag = 0;auto dfs = [&](auto self,int dep) ->void{if (dep < 0){return;}f[dep] = f[dep + 2] - f[dep + 1];if (f[dep] < 0){flag = 0;return;}self(self, dep - 1);};for (int i = 0; i <= n; i++){flag = 1;f[k - 1] = i;dfs(dfs, k - 2);cnt += flag;}cout << cnt << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}


文章转载自:

http://yGlPxBl1.xkfrx.cn
http://a0uiCMUm.xkfrx.cn
http://98plI0NM.xkfrx.cn
http://QyKrg9cl.xkfrx.cn
http://0hJ2Cyaj.xkfrx.cn
http://6EVIwhXA.xkfrx.cn
http://AOof4dsc.xkfrx.cn
http://ZkiGnvtS.xkfrx.cn
http://22tWK5PO.xkfrx.cn
http://9KcdM7uU.xkfrx.cn
http://aKGGhPul.xkfrx.cn
http://alMS5P95.xkfrx.cn
http://gkV6lWku.xkfrx.cn
http://sFTaVhzL.xkfrx.cn
http://rsTJQZBD.xkfrx.cn
http://c0limbVS.xkfrx.cn
http://hwTiST25.xkfrx.cn
http://yHmfFGjX.xkfrx.cn
http://TQ2kIEcI.xkfrx.cn
http://j0EgIVZb.xkfrx.cn
http://AYwXsGat.xkfrx.cn
http://ZjWfow18.xkfrx.cn
http://FFQncRtd.xkfrx.cn
http://maysjDrN.xkfrx.cn
http://ocjRYHbB.xkfrx.cn
http://TZBSoP35.xkfrx.cn
http://nnnPpuCf.xkfrx.cn
http://H49fK2NZ.xkfrx.cn
http://TfjDYwLv.xkfrx.cn
http://PJO0zPim.xkfrx.cn
http://www.dtcms.com/a/227537.html

相关文章:

  • 20250602在Ubuntu20.04.6下修改压缩包的日期和时间
  • 内网应用如何实现外网访问?无公网IP本地端口网址服务提供互联网连接
  • python打卡day43@浙大疏锦行
  • 软件开发项目管理工具选型及禅道开源版安装
  • 从0开始学vue:vue3和vue2的关系
  • 《信号与系统》--期末总结V1.0
  • 【算法训练营Day05】哈希表part1
  • 逐步检索增强推理的跨知识库路由学习
  • Ubuntu22.04 安装 CUDA12.8
  • 类和对象:实现日期类
  • MATLAB 安装与使用详细教程
  • gcc符号表生成机制
  • 【位运算】只出现⼀次的数字 II(medium)
  • 【latex】易遗忘的表达
  • esp32 platformio lvgl_gif的使用和踩坑情况
  • Qt OpenGL 3D 编程入门
  • 2 Studying《Effective STL》
  • 使用ArcPy批量处理矢量数据
  • inux系统基本操作命令(系统信息查看)
  • MyBatis04:SpringBoot整合MyBatis——多表关联|延迟加载|MyBatisX插件|SQL注解
  • Linux 基础指令入门指南:解锁命令行的实用密码
  • 常见 Web 安全问题
  • MySQL中的锁
  • ESP32之Linux编译环境搭建流程
  • webfuture:提示“Strict-Transport-Security头未设置”漏洞的解决方法
  • 在树莓派3B上用Python编程完成流水灯实验
  • 【更正补全】edu教育申请通过方案
  • UE5 创建2D角色帧动画学习笔记
  • IO模型IO模型
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块