栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第一天。。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一天。。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

蓝桥杯真题浅做
  • 1.刷题统计
    • 输入格式
    • 输出格式
    • 输入样例:
    • 输出样例:
    • 无思路:
  • 2.修剪灌木
    • 输入格式
    • 输出格式
    • 数据范围
    • 输入样例:
    • 输出样例:
      • 解题思路:
  • 3.X 进制减法
    • 输入格式
    • 输出格式
    • 数据范围
    • 输入样例:
    • 输出样例:
    • 怨种心得
    • 解题思路:
  • 字串分值和
    • 输入格式
    • 输出格式
    • 输入样例:
    • 输出样例:
    • 解释样例:


1.刷题统计

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。

他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。

请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 a,b和 n。

输出格式

输出一个整数代表天数。

###数据范围

对于 50%50% 的评测用例,1≤a,b,n≤10^6 ,
对于 100%100% 的评测用例,1≤a,b,n≤10^18 。

输入样例:

10 20 99

输出样例:

8

无思路:

限于蓝桥杯的模式,而我又是菜鸡,当时这题的时候直接暴力解法,用for循环直接跑数据范围太大,肯定炸,现在重新做才明白之坑,裂开,我是fw,简单直接上代码

#include
using namespace std;
#define ll long long

int main()
{
	ll  ans=0,a,b,n;
	cin>>a>>b>>n;
	

		ans=n/(a*5+b*2);
		ans*=7;
		n=n%(a*5+b*2);
		
		
		for(int i=1;i<=5;i++)
		{
		
			if(n>0)
			{
				n-=a;
				ans++;
			}
			
		}
		for(int i=0;i<2;i++){
		
			if(n>0){
			n-=b;
			ans++;
			}
		}
	cout< 
2.修剪灌木 

爱丽丝要完成一项修剪灌木的工作。

有 N 棵灌木整齐的从左到右排成一排。

爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。

爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。

当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。

直到修剪了最左的灌木后再次调转方向。

然后如此循环往复。

灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。

在第一天的早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

输入格式

一个正整数 N,含义如题面所述。

输出格式

输出 N 行,每行一个整数,第行表示从左到右第 i 棵树最高能长到多高。

数据范围

对于 30% 的数据,N≤10,
对于 100% 的数据,1 输入样例:

3

输出样例:

4
2
4

解题思路:

这题应该算基础了,当时根据记忆应该是做出来了的,就是找下规律,算是对我比较友好的,上代码

#include
using namespace std;
#define ll long long

int main()
{
	ll a[10005],n;
	cin>>n;
	if(n%2==0){
		int k=n,l=n;
		for(int i=n/2;i>=1;i--) a[i]=k,k=k+2;
		for(int i=n/2+1;i<=n;i++) a[i]=l,l=l+2;
	}
	else{
		int k=n+1,l=n-1;
		for(int i=n/2;i>=1;i--) a[i]=k,k=k+2;
		for(int i=n/2+1;i<=n;i++) a[i]=l,l=l+2;
	}
	for(int i=1;i<=n;i++)
		cout< 
3.X 进制减法 

进制规定了数字在数位上逢几进一。

X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数 321 转换为十进制数为 65。

现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进制。请你算出 A−B 的结果最小可能是多少。

请注意,你需要保证 A 和 B 在 X 进制下都是合法的,即每一数位上的数字要小于其进制。

输入格式

第一行一个正整数 N,含义如题面所述。

第二行一个正整数 Ma,表示 X 进制数 A 的位数。

第三行 Ma 个用空格分开的整数,表示 X 进制数 A 按从高位到低位顺序各个数位上的数字在十进制下的表示。

第四行一个正整数 Mb,表示 X 进制数 B 的位数。

第五行 Mb 个用空格分开的整数,表示 X 进制数 B 按从高位到低位顺序各个数位上的数字在十进制下的表示。

请注意,输入中的所有数字都是十进制的。

输出格式

输出一行一个整数,表示 X 进制数 A−B 的结果的最小可能值转换为十进制后再模 1000000007 的结果。

数据范围

对于 30% 的数据,N≤10;Ma,Mb≤8,
对于 100% 的数据,2≤N≤1000;1≤Ma,Mb≤100000;A≥B。

输入样例:

11
3
10 4 0
3
1 2 0

输出样例:

94

怨种心得

当时比赛时做这题时还有点小骄傲,感觉这题很难,毕竟我是看了20几分钟才想出来,然后就疯狂敲,敲了五六十行,但最后好像是数据全过了,还行,现在看到别人题解,发现自己就是个大怨种,果然赛后看题解很重要,害。

解题思路:

这题开两个数组存数据,根据题意输入,注意倒叙,加减好处理,最后两数组各项相减,取模后a可能会小于b,加上模数,再取模。

#include
using namespace std;
#define ll long long
const int N =1000000007;

int a[100010]={0},b[100010]={0};
int main()
{
	int n,k,l;
	cin>>n>>k;
	for(int i=k;i;i--) cin>>a[i];
	cin>>l;
	for(int i=l;i;i--) cin>>b[i];
	ll ans=0;
	
	for(int i=k;i;i--)
	{
		ans= ans*max({2,a[i]+1,b[i]+1})%N;
		ans=((ans+a[i]-b[i])%N+N)%N;
	}
	cout< 
字串分值和 

对于一个字符串S ,我们定义S 的分值f (S ) 为S 中出现的不同的字符个数。

例如f (”aba”) = 2, f (”abc”) = 3, f (”aaa”) = 1。

现在给定一个字符串S [0 : n - 1](长度为n),请你计算对于所有S 的非空子串S [i : j](0 ≤ i ≤ j < n), f (S [i:j]) 的和是多少。

输入格式

输入一行包含一个由小写字母组成的字符串S 。

对于所有评测用例,1 ≤ n ≤ 100000。

输出格式

输出一个整数表示答案。

输入样例:

ababc

输出样例:

28

解释样例:

子串 f值
a 1
ab 2
aba 2
abab 2
ababc 3
b 1
ba 2
bab 2
babc 3
a 1
ab 2
abc 3
b 1
bc 2
c 1

这题可以用常规方法遍历做,但也有更好的理解方法,根据解释样例,可以知道,每个字符串中只有第一个出现的字符串具有计数效益,所以记录n-i+1
作为每个字符的之后的字符数作为具有该字符的子字符串个数,并将每个字符通过数组记录位置,每个字符减去前一个该字符出现的位置,代表它能够有计数效益的个数,然后与n-i+1相乘代表该字符的总计数,相加之和得出结果

#include
using namespace std;
#define ll long long 
char c[10000];
ll ans=0;

int main(){
	string c;
	cin>>c;
	int k[10000];
	int n=c.size();
	
	c=' '+c;
	
	for(int i=1;i<=n;i++){
		ans +=(ll)(i-k[c[i]])*(n-i+1);
		k[c[i]]=i;
	}
	cout<
                
                
                
        
        

  
    
      
        
      
      
        
          
          
        
        
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号