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

做题笔记:某大讯飞真题28道

 #include <stdio.h>int main() {int n;scanf("%d", &n);if (n % 2 != 0) {printf("-1\n");return 0;}int k = n/2;   // n为偶数int y_max = n/8;  // 8个袋子的最大数量int ans = -1;for (int y = y_max; y>=0; y--) {// 计算剩余的橘子数=2k-8y = 4k-8y? 注意:方程是3x+4y=kif ( (k - 4*y) >=0 && (k-4*y)%3 ==0 ) {int x = (k-4*y)/3;ans = x+y;break;}}printf("%d\n", ans);return 0;}

#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100010int a[MAX_N], b[MAX_N];
int tree[4 * MAX_N];// 手动实现二分查找(替代lower_bound)
int binary_search(int arr[], int n, int x) {int l = 0, r = n - 1;while (l <= r) {int mid = l + (r - l) / 2;if (arr[mid] < x) l = mid + 1;else if (arr[mid] > x) r = mid - 1;else return mid; // 找到精确匹配}return l; // 返回第一个不小于x的位置
}// 线段树相关函数保持不变(同原代码)
void build(int node, int l, int r) {tree[node] = 0;if (l == r) return;int mid = (l + r) >> 1;build(node << 1, l, mid);build(node << 1 | 1, mid + 1, r);
}void update(int node, int l, int r, int idx, int delta) {if (l == r) {tree[node] += delta;return;}int mid = (l + r) >> 1;if (idx <= mid) update(node << 1, l, mid, idx, delta);else update(node << 1 | 1, mid + 1, r, idx, delta);tree[node] = tree[node << 1] + tree[node << 1 | 1];
}int query(int node, int l, int r, int k) {if (l == r) return l;int mid = (l + r) >> 1;if (tree[node << 1] >= k)return query(node << 1, l, mid, k);elsereturn query(node << 1 | 1, mid + 1, r, k - tree[node << 1]);
}int cmp(const void* a, const void* b) {return *(int*)a - *(int*)b;
}int main() {int n, m;scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &a[i]);b[i] = a[i];}// 离散化处理qsort(b, n, sizeof(int), cmp);m = 1;for (int i = 1; i < n; i++)if (b[i] != b[i - 1]) b[m++] = b[i];// 构建权值线段树build(1, 0, m - 1);// 初始化更新(使用binary_search替代lower_bound)for (int i = 0; i < n; i++) {int pos = binary_search(b, m, a[i]);update(1, 0, m - 1, pos, 1);}int len = n;for (int i = 0; i < n; i++) {int k = (len + 1) / 2;  // 中位数位置int idx = query(1, 0, m - 1, k);printf("%d ", b[idx]);update(1, 0, m - 1, idx, -1);  // 删除当前中位数len--;}return 0;
}

    #include <stdio.h>#include <stdlib.h>#define ll long longll terms[100]; // will not exceed 30 itemsint main() {int T;scanf("%d",&T);while (T--) {ll n;scanf("%lld",&n);ll p = 1;int count = 0;while (n>0) {ll r = n % 3;if (r==0) {n /= 3;} else if (r==1) {terms[count++] = p;n = (n-1)/3;} else if (r==2) {terms[count++] = 2 * p;n = (n-2)/3;}p *= 3;}// reverse terms array: index 0 to count-1 (originally added in increasing b, so we output from count-1 to 0)// but the problem requires from large to small.printf("%d\n",count);if (count==0) {// no terms, but count=0, so just output the empty line?printf("\n");} else {// output from the last term to the first termfor (int i=count-1; i>=0; i--) {printf("%lld ", terms[i]);}printf("\n");}}return 0;}

http://www.lryc.cn/news/605256.html

相关文章:

  • 万字深度详解DHCP服务:动态IP地址分配的自动化引擎
  • 100万QPS短链系统如何设计?
  • 基于C语言实现的KV存储引擎(一)
  • 3 运算符与表达式
  • 【CVPR2025】FlowRAM:用区域感知与流匹配加速高精度机器人操作策略学习
  • 架构实战——架构重构内功心法第一式(有的放矢)
  • 《Computational principles and challenges in single-cell data integration》
  • SpringMVC 6+源码分析(一)初始化流程
  • 2021 年 NOI 最后一题题解
  • 项目文档太多、太混乱怎么解决
  • C语言高级(构造数据类型)
  • 2020 年 NOI 最后一题题解
  • REST、GraphQL、gRPC、tRPC深度对比
  • 订阅区块,部署合约,加载合约
  • 颐顿机电携手观远BI数据:以数据驱动决策,领跑先进制造智能化升级
  • 流程制造的数字孪生:从黑箱生产到全息掌控
  • Linux c网络专栏第四章io_uring
  • Linux零基础Shell教学全集(可用于日常查询语句,目录清晰,内容详细)(自学尚硅谷B站shell课程后的万字学习笔记,附课程链接)
  • Baumer工业相机堡盟工业相机如何通过YoloV8的深度学习模型实现汽车牌照的位置识别(C#代码,UI界面版)
  • 大厂主力双塔模型实践与线上服务
  • SSRF漏洞基础
  • 爬虫验证码处理:ddddocr 的详细使用(通用验证码识别OCR pypi版)
  • Redis 中 key 的过期策略 和 定时器的两种实现方式
  • cocos打包web端需要注意的地方
  • Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013)
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
  • 生成式推荐网络架构汇总
  • Java注解与反射:从自定义注解到框架设计原理
  • CHI - Transaction介绍(4) - 原子操作
  • 工厂方法模式:从基础到C++实现