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

2.14学习总结

#include <stdio.h>
#include <stdlib.h>
#include <math.h>#define MAX_N 32767// 二分查找最接近目标值的元素
int binarySearch(int* arr, int left, int right, int target) {while (left < right) {int mid = left + (right - left) / 2;if (arr[mid] < target) {left = mid + 1;}else {right = mid;}}return left;
}// 计算最小波动值
int calculateMinFluctuation(int currentTurnover, int* previousTurnovers, int days) {if (days == 0) {return currentTurnover;}// 二分查找插入位置int pos = binarySearch(previousTurnovers, 0, days, currentTurnover);int minFluctuation;if (pos == 0) {minFluctuation = abs(currentTurnover - previousTurnovers[0]);}else if (pos == days) {minFluctuation = abs(currentTurnover - previousTurnovers[days - 1]);}else {int leftDiff = abs(currentTurnover - previousTurnovers[pos - 1]);int rightDiff = abs(currentTurnover - previousTurnovers[pos]);minFluctuation = (leftDiff < rightDiff) ? leftDiff : rightDiff;}return minFluctuation;
}// 插入元素并保持数组有序
void insertSorted(int* arr, int days, int value) {int i = days - 1;while (i >= 0 && arr[i] > value) {arr[i + 1] = arr[i];i--;}arr[i + 1] = value;
}int main() {int n;int turnovers[MAX_N];int totalFluctuation = 0;// 读取天数scanf("%d", &n);for (int i = 0; i < n; i++) {int currentTurnover;// 读取当天营业额scanf("%d", &currentTurnover);// 计算当天最小波动值int minFluctuation = calculateMinFluctuation(currentTurnover, turnovers, i);// 累加最小波动值totalFluctuation += minFluctuation;// 插入当前营业额并保持数组有序insertSorted(turnovers, i, currentTurnover);}// 输出总的最小波动值printf("%d\n", totalFluctuation);return 0;
}

 

#include <stdio.h>
#include <math.h>#define MAX_N 128  // 2^7 = 128// 存储每个国家的能力值和编号
typedef struct {int ability;int id;
} Country;// 模拟一轮比赛,返回获胜国家
Country playMatch(Country a, Country b) {return a.ability > b.ability ? a : b;
}int main() {int n;scanf("%d", &n);int numCountries = (int)pow(2, n);  // 计算参赛国家数量Country countries[MAX_N];// 读取每个国家的能力值for (int i = 0; i < numCountries; i++) {scanf("%d", &countries[i].ability);countries[i].id = i + 1;}// 模拟淘汰赛过程while (numCountries > 2) {for (int i = 0; i < numCountries / 2; i++) {countries[i] = playMatch(countries[2 * i], countries[2 * i + 1]);}numCountries /= 2;}// 决赛,找出冠军和亚军Country champion = playMatch(countries[0], countries[1]);Country runnerUp = (champion.id == countries[0].id) ? countries[1] : countries[0];// 输出亚军的编号printf("%d", runnerUp.id);return 0;
}

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

相关文章:

  • 在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档教程
  • zola + github page,用 workflows 部署
  • 【科技革命】颠覆性力量与社会伦理的再平衡
  • UIView 与 CALayer 的联系和区别
  • Jenkins 新建配置 Freestyle project 任务 六
  • 深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现
  • mybatis-plus逆向code generator pgsql实践
  • Android Studio:RxBus结合ICompositeSubscription使用
  • 微软AutoGen高级功能——Magentic-One
  • redis cluster测试
  • 【ARM】JTAG接口介绍
  • 处理项目中存在多个版本的jsqlparser依赖
  • 部署 DeepSeek R1各个版本所需硬件配置清单
  • 数据结构:Map Set(一)
  • zabbix 监控系统 配置钉钉告警
  • 跟着李沐老师学习深度学习(十一)
  • 32单片机学习记录4之串口通信
  • 微信小程序 - 组件和样式
  • JavaScript 发起网络请求 axios、fetch、async / await
  • 本地搭建自己的专属客服之OneApi关联Ollama部署的大模型并创建令牌《下》
  • Win10环境借助DockerDesktop部署最新MySQL9.2
  • 【Maven】多module项目优雅的实现pom依赖管理
  • 前端vue引入特殊字体不生效
  • 【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用
  • WEB安全--SQL注入--INTO OUTFILE
  • 如何从0开始将vscode源码编译、运行、打包桌面APP
  • 关于视频去水印的一点尝试
  • 如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?
  • 【css】width:100%;padding:20px;造成超出100%宽度的解决办法 - box-sizing的使用方法 - CSS布局
  • 【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收