这里是引用

1.出现次数最多的数

问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

经验:
CSP不保存提交代码记录,不过水题,pass

2.ISBN号

问题描述
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。
编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。
输入格式
输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。
输出格式
输出一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。


number_list = list(input().split("-"))
temp = number_list[0] + number_list[1] + number_list[2]
sum = 0
weight = 1
for i in temp:sum += int(i) * weightweight += 1
sum = sum % 11
if sum == 10 and number_list[3] == "X":print("Right")
elif sum != 10 and int(number_list[3]) == sum:print("Right")
else:temp_str = number_list[0] + "-" + number_list[1] + "-" + number_list[2] + "-"if sum == 10:temp_str = temp_str + "X"else:temp_str = temp_str + str(sum)print(temp_str)

经验:
(1)思想很自然,就是split然后转数字计算。不过不知道为什么扣了20分。。

3.最大的矩形

在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。
请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。

n = int(input())
tangle_list = list(map(int, input().split()))
max_height = max(tangle_list)
result_area = 0
for index, height in enumerate(tangle_list):max_area = heightmin_height = heightfor i in range(index + 1, len(tangle_list)):h = tangle_list[i]if h < min_height:min_height = htemp_area = min_height * (i - index + 1)if temp_area > max_area:max_area = temp_areaif result_area < max_area:result_area = max_areaprint(result_area)

经验:
(1)不同的遍历方式会对程序的时间有很大的影响。最初我按照所有高度遍历,但是很明显有很多遍历的结果是无效的,而以一条边为界寻找他的最大矩形就能够把复杂度文星的卡在O(n^2)以下,足够解题。
(2)根据题解的说明有单调栈解法,然而看了几个版本都没看明白,此处暂且搁置。

4.有趣的数

问题描述
我们把一个数称为有趣的,当且仅当:
1它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。
2所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。
3最高位数字不为0。
因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。
请计算恰好有n位的有趣的数的个数。由于答案可能非常大,只需要输出答案除以1000000007的余数。
输入格式 
输入只有一行,包括恰好一个正整数n (4 ≤ n ≤ 1000)。
输出格式
输出只有一行,包括恰好n 位的整数中有趣的数的个数除以1000000007的余数。


import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();long base = 1000000007;long[][] dp = new long[n+1][6];for(int i = 0; i < 6; i++)dp[0][i] = 0;for(int i = 0; i <= n - 1; i++) {dp[i + 1][0] = 1;dp[i + 1][1] = (dp[i][0] + 2 * dp[i][1]) % base;dp[i + 1][2] = (dp[i][2] + dp[i][0]) % base;dp[i + 1][3] = (dp[i][2] + dp[i][1] + 2 * dp[i][3]) % base;dp[i + 1][4] = (dp[i][5] + 2 * dp[i][4] + dp[i][3]) % base;dp[i + 1][5] = (2 * dp[i][5] + dp[i][1]) % base;}System.out.print(dp[n][4]);}}

经验:
(1)难度较高的DP,本质思路还是从前往后加数,因为这个方向才具有性质2和3。
(2)有点类似于中等数学中的第二类数学归纳法,推导第i位状态的时候需要前i-1位的性质状态。
不同状态共有六类,为:
A.222…2
B.222…0…2
C.2…3…
D.2…0…2…3…0
E.2…0…2…1…2…3…1
F.2…0…2…1…2
最终结果我们只要状态为E的。
(3)@Mahay,这题排列组合必解不出来,我flag就放在这里了。

CSP刷题2013年相关推荐

  1. csp刷题总结(如此编码python版本)

    csp刷题总结(如此编码python版本)

  2. 备考CSP刷题经验总结

    (目标300+) 目录 经验 1.对题目中的数据范围进行枚举.试探,找到一个大致的范围 2.递归求解的思想 3.字符串处理类的模拟题,一定要有清晰的结构,可以采用一定的存储结构先存储再处理,不要想着在 ...

  3. 如何在新版csp网站上刷题

    CCF目前已经推出新版CSP网站,许多小可爱问过我怎么在新版CSP网站上刷题,这篇博客主要说一下如何进入CSP刷题页面. 首先进入新版CSP网址 http://www.cspro.org/ ,如果已有 ...

  4. 历届CSP真题题解-CSP刷真题之路

    历届CSP真题题解-CSP刷真题之路(持续更新中...) 2020-12 2020-09 2020-06 2019-12 2020-12 题目编号 题解链接 CSP202012-1 期末预测之安全指数 ...

  5. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  6. 重走长征路---OI每周刷题记录---11月16日 2013

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  7. 重走长征路---OI每周刷题记录---9月21日 2013 AC 17题

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  8. 重走长征路---OI每周刷题记录---11月4日 2013

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  9. ccf csp认证刷题笔记202212

    此处用以记录一下自己在刷题时候的思路和使用的方法.本人算法小垃圾,所以基本上使用最原始的方法来完成这些题目. 202212-1: 题目: 絮絮叨叨的分析: 单看题目,简直不知道其在说什么.可能是我的语 ...

最新文章

  1. linux双系统重装win7系统下载,Windows与Ubuntu双系统重装WIN7后修复Grub2
  2. 用Python评测三种批量查询经纬度的方法,你pick哪一种?
  3. 集成开发环境IDE的概述
  4. 图片外链测试-HTML
  5. 移动端页面rem布局出现横向滚动条的修复
  6. SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 4)
  7. 批量旋转很多张图片,可以设置自定义的旋转角度
  8. python求梅花数_《梅花易数》又叫梅花数
  9. verilog基础语法
  10. html字体图标显示不出来,h5页面字体图标显示不正常
  11. CSS之颜色和背景的属性设置
  12. Java | 绘图:Graphics2D
  13. fd在python_python中fd()是什么
  14. WinRAR分割超大文件
  15. 微软MSDN Webcast系列视频教程集锦整理
  16. 谷爱凌拿到第三金,1620这串数字到底代表什么意思?
  17. js基本概念(上)之数据类型
  18. HTML+CSS制作人物介绍卡片效果
  19. 在线九宫切图(九宫格切图)工具
  20. Download 文件下载

热门文章

  1. 基于嵌入式平台下的GIS/GPS定位系统设计 之 设计方案选择
  2. 解决安装Eclipse ADT插件时连接不上-报错
  3. 电信无线路由猫设置,自动连接wifi,不用wifi pppoe软件拨号
  4. 拍卖算法:Astar算法:Dijkstra;BFS;DFS
  5. 新增书籍类别下拉框加载、书籍上下架功能
  6. FishC笔记—06 讲:Pyhon 之常用操作符
  7. java药品销售系统_Java网上药店、药品销售系统
  8. python生成回文字符串_回文字符串最长回文子串和子序列 - Python
  9. 回文字符串——Python
  10. 【JAVA职业规划】JAVA职业规划