没有合适的资源?快使用搜索试试~ 我知道了~
算法哈哈哈哈哈哈哈哈哈哈哈哈
需积分: 0 0 下载量 110 浏览量
2023-12-27
22:51:41
上传
评论
收藏 1.16MB DOCX 举报
温馨提示
试读
45页
算法哈哈哈哈哈哈哈哈哈哈哈哈
资源推荐
资源详情
资源评论
1
作业一
第 1 关 统计数字问题
1. #include <bits/stdc++.h>
2. using namespace std;
3.
4. int a[10]={0};
5.
6. void Math(int n)
7. {
8. int len=log10(n)+1;
9. int p=n/((int)round(pow(10.0,len-1)));
10. for(int i=0;i<10;i++)
2
11. {
12. a[i]=a[i]+p*(len-1)*(int)round(pow(10.0,len-2));
13. }
14. for(int i=0;i<p;i++)
15. {
16. a[i]=a[i]+(int)round(pow(10.0,len-1));
17. }
18. int t=n%((int)round(pow(10.0,len-1)));
19. if(t==0)
20. {
21. a[0]=a[0]+len-1;
22. a[p]++;
23. return ;
24. }
25. int len1=log10(t)+1;
26. if(len1!=len-1)
27. {
28. a[0]=a[0]+(len-len1-1)*(t+1);
29. }
30. a[p]=a[p]+t+1;
31. return Math(t);
32. }
33.
34. int main()
35. {
36. int n;
37. while(cin >> n)
38. {
39. int len=log10(n)+1;
40. Math(n);
41. for(int i=0;i<len;i++)
42. {
43. a[0]=a[0]-(int)round(pow(10.0,i));
44. }
45. for(int i=0;i<10;i++)
46. {
47. cout << a[i] << endl;
48. }
49. }
50. return 0;
51. }
3
第 2 关 字典序问题
4
1. #include <bits/stdc++.h>
2. #include <iostream>
3. #include <string>
4. #include <vector>
5. using namespace std;
6. long long calculateCode(const string& str) {
7. const int len = str.length();
8. vector<vector<long long>> dp(6, vector<long long>(26, 0));
9. for (int i = 0; i < 26; ++i) {
10. dp[0][i] = 1;
11. }
12. for (int i = 1; i < 6; ++i) {
13. for (int p = 0; p < 26; ++p) {
14. for (int q = p + 1; q < 26; ++q) {
15. dp[i][p] += dp[i - 1][q];
16. }
17. }
18. }
19. long long code = 0;
20. bool isAscending = true;
21. for (int i = 0; i < len - 1; ++i) {
22. if (str[i] >= str[i + 1]) {
23. isAscending = false;
24. break;
25. }
26. }
27. if (!isAscending) {
28. return 0;
29. }
30. for (int x = 0; x < len - 1; ++x) {
31. for (int y = 0; y < 26; ++y) {
32. code += dp[x][y];
33. }
34. }
35. for (int x = len - 1; x < len; ++x) {
36. for (int y = 0; y < str[0] - 'a'; ++y) {
37. code += dp[x][y];
38. }
39. }
40. for (int k = 1; k < len; ++k) {
41. int o = 0;
42. while (o < str[k] - str[k - 1] - 1) {
43. code += dp[len - 1 - k][str[k] - str[k - 1] + str[k - 1] - 'a' -
(++o)];
5
44. }
45. }
46. return code + 1;
47. }
48.
49. int main() {
50. int m;
51. cin >> m;
52. string n;
53. vector<long long> results;
54. while (m--) {
55. cin >> n;
56. long long code = calculateCode(n);
57. results.push_back(code);
58. }
59. for (int i = 0; i < results.size(); ++i) {
60. cout << results[i] << endl;
61. }
62. return 0;
63. }
剩余44页未读,继续阅读
资源评论
盛于凛冬,败于暮春
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5152单片机proteus仿真和源码用do-while语句控制P0口8位LED流水点亮
- 课程实验设计-广告墙,通过课程实验设计来实践我们的知识
- 51单片机串口通信计算器-串口实现简单计算器加减乘除
- 111111111111111111
- 1991-2022年上市公司短贷长投短债长用投融资期限错配(包含原始数据及Stata代码).txt
- 5152单片机proteus仿真和源码一个数控直流稳压电源
- jsp开发应用课程设计-课程设计任务书-课程设计任务书模板
- 一个DICOM测试工具
- 5152单片机proteus仿真和源码一个步进电机的仿真
- unity-webview是Unity 5的一个插件,用于覆盖WebView组件在Unity视图上
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功