CCF201509-Python题解
数列分段
原题链接:http://118.190.20.162/view.page?gpid=T32
试题编号: | 201509-1 |
试题名称: | 数列分段 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
输入格式
输入的第一行包含一个整数n,表示数列中整数的个数。
第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。 输出格式
输出一个整数,表示给定的数列有多个段。
样例输入
8
8 8 8 0 12 12 8 0 样例输出
5
样例说明
8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。
评测用例规模与约定
1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。
|
我感觉这道题出题语言不严谨,都说“最”了,`888`和`8`竟然都是`最`
连续相同+单个=最终分段数
1 from sys import stdin 2 3 n=int(stdin.readline().strip()) 4 arr=list(map(int, stdin.readline().strip().split())) 5 6 summ=1 7 tmp=arr[0] 8 for i in range(1,n): 9 if arr[i]==tmp: 10 continue 11 else: 12 tmp=arr[i] 13 summ+=1 14 print(summ)
日期计算
原题链接:http://118.190.20.162/view.page?gpid=T31
试题编号: | 201509-2 |
试题名称: | 日期计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
给定一个年份y和一个整数d,问这一年的第d天是几月几日?
注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。 输入格式
输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
输入的第二行包含一个整数d,d在1至365之间。 输出格式
输出两行,每行一个整数,分别表示答案的月份和日期。
样例输入
2015
80 样例输出
3
21 样例输入
2000
40 样例输出
2
9 |
模拟整个过程,第一种90第二种100
90分(小丑竟是我自己,忘记break一个循环)
1 y=int(input()) 2 d=int(input()) 3 mon=[31,28,31,30,31,30,31,31,30,31,30,31] 4 if (y%4==0 and y%100!=0) or y%400==0: 5 mon[1]=29 6 7 month=0 8 day=0 9 flag=1 10 while(flag): 11 tmp=1 12 for m in mon: 13 if m-d<0: 14 d-=m 15 tmp+=1 16 elif m-d>=0: 17 month=tmp 18 day=d 19 flag=0 20 # break 21 22 23 print(month) 24 print(day)
100分
1 y=int(input()) 2 days=int(input()) 3 4 mon=[31,28,31,30,31,30,31,31,30,31,30,31] 5 if (y%4==0 and y%100!=0)or(y%400==0): 6 mon[1]=29 7 8 m=0 9 d=0 10 i=0 11 for m in mon: 12 i+=1 13 if days>m: 14 days-=m 15 else: 16 m=i 17 d=days 18 break 19 20 print(m) 21 print(d)