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

【工资计算 / 2】

题目

a3be384e5a5c4cc5b6359f8c52c2e5a7.png

枚举

#include <bits/stdc++.h>
using namespace std;
int T;
int a[] = {0,1500,4500,9000,35000,55000,80000,1000000};
int b[] = {0,3,10,20,25,30,35,45};
int check(int x)
{if(x <= 3500) return x;x -= 3500;int tax = 0;for(int i = 1; i < 8; i++){if(x >= a[i-1]){tax += (min(x, a[i]) - a[i-1]) / 100 * b[i];}}return x + 3500 - tax;
}
int main()
{cin >> T;for(int x = 0; ; x += 100){if(check(x) == T){cout << x;break;}}return 0;
}

右区间二分

#include <bits/stdc++.h>
using namespace std;
int T;
int a[] = {0, 1500, 4500, 9000, 35000, 55000, 80000, 1000000};
int b[] = {0, 3, 10, 20, 25, 30, 35, 45};
int check(int x)
{if(x <= 3500) return x;x -= 3500;double tax = 0;for(int i = 1; i < 8; i++){if(x >= a[i-1]){tax += (double)(min(x, a[i]) - a[i-1]) / 100 * b[i];}}return x + 3500 - tax;
}
int main()
{cin >> T;int l = T, r = T * 2;while (l < r){int mid = (l + r) >> 1;if(check(mid) >= T) r = mid;else l = mid + 1;}cout << l;return 0;
}

左区间二分(错,注意答案必须是100的倍数,结合精度丢失,可以判断必须采用右区间二分)

比如check(10000) (右区间边界)= check(10001)(左区间边界) = 9255

check(9999) < 9255

如果右区间二分,会得到10000,左区间二分会得到 >= 10001的值

#include <bits/stdc++.h>
using namespace std;
int T;
int a[] = {0, 1500, 4500, 9000, 35000, 55000, 80000, 1000000};
int b[] = {0, 3, 10, 20, 25, 30, 35, 45};
int check(int x)
{if(x <= 3500) return x;x -= 3500;double tax = 0;for(int i = 1; i < 8; i++){if(x >= a[i-1]){tax += (double)(min(x, a[i]) - a[i-1]) / 100 * b[i];}}return x + 3500 - tax;
}
int main()
{cin >> T;int l = T, r = T * 2;while (l < r){int mid = (l + r + 1) >> 1;if(check(mid) <= T) l = mid;else r = mid-1;}cout << l;return 0;
}


http://www.mrgr.cn/news/25079.html

相关文章:

  • Python爱心射线(完整代码)
  • GaussDB关键技术原理:高弹性(四)
  • 【C++】C++ STL探索:容器适配器 Stack 与 Queue 的使用及模拟实现
  • Debezium数据同步基础概论
  • QtC++截图支持获取鼠标光标
  • 120张网络安全等保拓扑大全,零基础入门到精通,收藏这一篇就够了
  • audio耳麦拔插显示图标逻辑
  • Android 12 Launcher3 去掉Hotseat
  • 计算机深度:AI Agent - 通往AGI的核心基础
  • 【React源码解析】深入剖析Scheduler源码
  • 【课程系列12】某客时间AI大模型微调训练营
  • 数据结构C //线性表(链表)ADT结构及相关函数
  • 企业四要素核验是什么?如何应用
  • 函数题 6-2 多项式求值【PAT】
  • 3款数据恢复免费版软件评测:帮你轻松解决数据丢失问题
  • 代码设计:如何处理配置文件
  • 【阅读文献】一个使用大语言模型的端到端语音概要
  • 主导Instagram的10家企业
  • Java常见异常及Spring Validation框架详解
  • 为什么苹果智能为AI隐私设立了新的黄金标准