一、七段码
题目链接:七段码 - 蓝桥云课 (lanqiao.cn)
题目要求:
上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a,b,c,d,e,f,g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。
例如:b 发光,其他二极管不发光可以用来表达一种字符。
例如 c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。
例如:a,b,c,d,e 发光,f,g 不发光可以用来表达一种字符。
例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。
请问,小蓝可以用七段码数码管表达多少种不同的字符?
解题思路:
手数即可
#include<bits/stdc++.h> using namespace std; int main() { int sum = 0; //有一段二极管发光; a,b,c,d,e,f,g int l1 = 7; //有两段二极管发光; ab,af,bc,bg,cg,cd,de,eg,ef,fg int l2 = 10; //有三段二极管发光; abf,abc,abg,afg,afe,bcd,bcg,bgf,bge,cgd,cgf,cge,cde,cdg,deg,def,efg int l3 = 16;// //有四段二极管发光; abcd,abcg,abcf,abge,abgf,abfe,afeg,bcde,bcdg,bcgf,bcge,bged,bgef,cdef,cdeg,cdgf,cgfa,cgfe,defg,defa int l4 = 20; //有五段二极管发光即有两端不发光; ab,ac,ad,ae,af,ag,bc,bd,be,bg,cd,cf,cg,de,df,dg,ef,eg,fg int l5 = 19;// //有六段二极管发光即有一端不发光; a,b,c,d,e,f,g int l6 = 7; //第七种情况,全部发光 int l7 = 1; sum = l1 + l2 + l3 + l4 + l5 + l6 + l7; cout<<sum; return 0; }
二、时间显示
题目链接:时间显示 - 蓝桥云课 (lanqiao.cn)
题目要求:
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
解题思路:
我们知道 毫秒和秒换算是1000:1 所以先转换一下 然后转换成分钟 小时 然后取余输出 因为如果不取余可能会出问题 比如25小时这种
#include<bits/stdc++.h> using namespace std; int main() { long long t; cin>>t; int s = t/1000; int m = s/60; int h = m/60; printf("%02d:%02d:%02d:",h%24,m%60,s%60); return 0; }
三、区间位移
题目链接:位移
题目要求:
数轴上有 nn 个闭区间:D1,⋯Dn 。
其中区间 Di 用一对整数 [ai,bi] 来描述,满足 ai≤bi。
已知这些区间的长度之和至少有 10^4。
所以,通过适当的移动这些区间,你总可以使得他们的"并"覆盖 [0,10^4],也就是说 [0,10^4]这个区间内的每一个点都落于至少一个区间内。
你希望找一个移动方法,使得位移差最大的那个区间的位移量最小。
具体来说,假设你将 Di 移动到 [ai+ci,bi+ci]这个位置。你希望使得 max∣ci∣ 最小。
解题思路:
二分 贪心 不会 寄!