1.门牌制作

【问题描述】
小蓝要为一条街的住户制作门牌号。
这条街一共有2020位住户,门牌号从1到2020编号。
小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。
请问要制作所有的1到2020号门牌,总共需要多少个字符2?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

答案:624

#include<stdio.h>
int main()
{int sum=0,p,q;for( q=1;q<=2020;q++){p=q;while(p){if(p%10==2){sum++;}p/=10;}}printf("%d",sum);return 0;
}

2.既约分数

答案:2481215

#include<stdio.h>int d(int m, int n)
{if (m % n == 0){return n;}else{return d(n, m % n);}}
int main()
{int count = 0;for (int i = 1; i <= 2020; i++){for (int j = 1; j <= 2020; j++){if (d(i, j) == 1){count += 1;}}}printf("%d", count);}

3.蛇形排列

答案:671

#include<stdio.h>int main()
{int n = 20 * 2 - 1;int a = 0;int b = 0;for (int i = 1; i <= n; i++){a += i;}b = (a + a - n + 1) / 2;printf("%d ", b);return 0;}

4.跑步锻炼

答案:8879

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int main()
{int a=0;int m=6; int monthes[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};for(int i=2000; i<=2020; i++){if((i%4==0&&i%100!=0)||(i%400==0)){monthes[2]=29;  }else{monthes[2]=28;  }for(int month=1; month<=12; month++){for(int day=1; day<=monthes[month]; day++){a++;if(m==8){m=1;}if(m==1||day==1){a++;}m++;if(i==2020&&month==10&&day==1){printf("%d",a);}}}}return 0;
}

5.七段码

答案:80

#include<iostream>
#include<set>
#include<cstring>
using namespace std;int ve[7][7];
bool visit[7];
int ans = 0;
set <set <int> > se;
void dfs(int x,set<int> s)
{if(!se.count(s)){se.insert(s);ans++;}if(s.size() == 7)return;for(int j = 0; j < 7; j++){if(visit[j] || !ve[x][j]) continue;s.insert(j);visit[j] = 1;dfs(j,s);visit[j] = 0;s.erase(j);}
}
void add(int x, int y)
{ve[x][y] = 1;ve[y][x] = 1;
}
int main()
{add(0,1);add(0,5);add(1,6);add(1,2);add(2,6);add(2,3);add(3,2);add(3,4);add(4,5);add(4,6);add(5,6);set<int> s;for(int i = 0; i <= 6; i++){s.insert(i);visit[i] = 1;dfs(i,s);visit[i] = 0;s.erase(i);}cout<<ans<<endl;return 0;
}

6.成绩统计

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{int sum,temp;float p,excellence;int psum=0,excellencesum=0;scanf("%d",&sum);for(int i=1; i<=sum; i++){scanf("%d",&temp);if(temp>=60){psum++;  }if(temp>=85){excellencesum++; }}p=(float)psum/sum*100;  excellence=(float)excellencesum/sum*100;  int a=(int)(p+0.5);  int b=(int)(excellence+0.5);printf("%d%%\n%d%%",a,b);  return 0;
}

7.回文日期

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{int sum,temp;float p,excellence;int psum=0,excellencesum=0;scanf("%d",&sum);for(int i=1; i<=sum; i++){scanf("%d",&temp);if(temp>=60){psum++;  }if(temp>=85){excellencesum++; }}p=(float)psum/sum*100;  excellence=(float)excellencesum/sum*100;  int a=(int)(p+0.5);  int b=(int)(excellence+0.5);printf("%d%%\n%d%%",a,b);  return 0;
}

8.子串数值和(参考)

#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const int N = 1e5+10;
char s[N];
ll f[N];
int last[30];
int main(){scanf("%s",s+1);int n = strlen(s+1);ll ans = 0;for(int i=1;i<=n-i+1;i++)f[i] = f[n-i+1] = (n-i+1)*(ll)i; for(int i = 1;i<=n;i++){int t = s[i]-'a';if(!last[t]){    ans += f[i];}else{ans += f[i] - f[i]/i*last[t]; }last[t] = i; }printf("%lld",ans);return 0;
}

9.平面切分

#include<iostream>
#include<cmath>
#define max_size 1010using namespace std;
int ans=1;
double jd[max_size][2];void f(int i,int arr[1010][2],int a,int b)
{int temp=0;for(int j=1;j<i;j++){if(arr[j][0]==a){if(arr[j][1]==b) return;else continue;}else{jd[temp][0]=(b-arr[j][1])*1.0/(arr[j][0]-a);jd[temp][1]=a*1.0*jd[temp][0]+b;int flag=1;for(int k=0;k<temp;k++){if(abs(jd[k][0]-jd[temp][0])<1e-6&&abs(jd[k][1]-jd[temp][1])<1e-6){flag=0;break;}}if(flag==1){temp++;}}}ans=ans+temp+1;
int main()
{int num;cin>>num;int arr[1010][2];for(int i=1;i<=num;i++){cin>>arr[i][0]>>arr[i][1];f(i,arr,arr[i][0],arr[i][1]);}cout<<ans;return 0;
}

9.平面切分

#include<iostream>
#include<cmath>
#define max_size 1010using namespace std;
int ans=1;//没有直线时有一个平面
double jd[max_size][2];//交点可能含小数,故用float型void f(int i,int arr[1010][2],int a,int b)
{int temp=0;//统计当前直线与在它之前直线的不同交点数for(int j=1;j<i;j++){if(arr[j][0]==a){if(arr[j][1]==b) return;//当加入直线与之前直线相同时,不会多出来平面else continue;//两直线平行无交点}else{jd[temp][0]=(b-arr[j][1])*1.0/(arr[j][0]-a);//求交点x值jd[temp][1]=a*1.0*jd[temp][0]+b;//求交点y值int flag=1;for(int k=0;k<temp;k++){if(abs(jd[k][0]-jd[temp][0])<1e-6&&abs(jd[k][1]-jd[temp][1])<1e-6)//与之前交点相同,不做统计  浮点型有精度误差,判断差足够小即可{flag=0;break;}}if(flag==1){temp++;}}}ans=ans+temp+1;//当前平面数=未加此直线的平面数+加入此直线时多出来的平面数   而多出来的平面数等于该直线与之前直线的不同交点数+1
}
int main()
{int num;cin>>num;int arr[1010][2];for(int i=1;i<=num;i++){cin>>arr[i][0]>>arr[i][1];f(i,arr,arr[i][0],arr[i][1]);//边加入直线边计算}cout<<ans;return 0;
}

10.字串排序

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
const int N = 1e5+5;
char str[N];
int main(){int n; cin>>n;int r=0;while(r*(r+1)/2<n)r++;r++;int t=(r-1)*r/2-n;str[r-1]='a';for(int i=r-2;i>=0;i--){      if(t>r/2){str[i]=str[i+1];i--;str[i]=str[i+1];i--;t-=3;}else if(t>0){str[i]=str[i+1];i--;t--;}if(i>=0)str[i]=str[i+1]+1;}puts(str);return 0;
}

【思特奇杯·云上蓝桥·算法集训营】第四周相关推荐

  1. 思特奇杯·云上蓝桥 -算法 集训营第二周

    思特奇杯·云上蓝桥 -算法 集训营第二周 1. 带分数 题目描述 解法一 解题思路 python代码 2. 李白打酒 题目描述 解法一 解题思路 python代码 3. 第 39 级台阶 题目描述 解 ...

  2. #蓝桥杯真题【思特奇杯·云上蓝桥-算法集训营】第2周

    蓝桥杯训练营第二周作业 1.带分数 问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数 ...

  3. 【蓝桥杯】【Python】【思特奇杯·云上蓝桥-算法集训营】第1周作业

    第一周作业(Python描述) 1.跑步训练 问题描述: 答案提交: 题解: 思路: 代码: 总结: 2.阶乘约数 问题描述: 答案提交: 题解: 思路: 代码: 总结: 3.出栈次序 问题描述: 答 ...

  4. 【思特奇杯·云上蓝桥-算法集训营】第1周——了解算法与数据结构

    一.算法的基础概念 1.什么是算法? 算法就是任何良定义的计算过程,该过程取某个值或者值的集合作为输入并产生某个值的集合作为输出.算法描述了一个特定的计算过程来实现该输入输出关系. 注:良定义是指给出 ...

  5. 【无标题】【思特奇杯·云上蓝桥-算法集训营】第1周

    19201310程习恩 1题 跑步训练 问题描述 小明要做一个跑步训练,初始时,小明充满体力,体力值计为 10000. 如果小明跑步,每分钟损耗 600 的体力. 如果小明休息,每分钟增加 300 的 ...

  6. 【思特奇杯·云上蓝桥-算法集训营】第1周 猴子分香蕉 java

    题目原题: 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香 蕉忘记在沙滩上离去. 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一- 份藏起来继续睡觉. 第2只猴子 ...

  7. 【思特奇杯·云上蓝桥-算法集训营】第二周

    问题1 带分数 问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出 ...

  8. 【思特奇杯·云上蓝桥-算法集训营】第2周

    问题描述:1. 带分数 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字 1~9 分别 ...

  9. 蓝桥杯练习(【思特奇杯·云上蓝桥-算法集训营】第2周)

    第一题:带分数 问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出 ...

  10. 【思特奇杯·云上蓝桥-算法集训营】第2周作业

    第一题 带分数 问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出 ...

最新文章

  1. Flutter Raw Image Provider
  2. animation的6个属性
  3. boost::lambda::constructor用法的测试程序
  4. AssetManager (资源路径+当前手机配置信息)
  5. Java常用类(1)--字符串相关类String、StringBuffer、StringBuilder全面知识
  6. 计算机科学陈国华,科学网—模式识别与智能系统是个什么专业? - 晏燕华的博文...
  7. 【原】无脑操作:ElasticSearch学习笔记(01)
  8. UIFont 设置字体
  9. unity序列帧优化—Addressables
  10. 四个跑马灯的c语言程序,入门编程语言跑马灯,C语言设计跑马灯程序
  11. 强化学习——Q-learning算法
  12. 软件研发相关国家标准汇总
  13. Bat文件的创建及其命令大全
  14. pod、pvc删不掉怎么办?
  15. 基于python-opencv的图像中截取多边形区域
  16. 基于订单号可重入的交易系统接口设计探讨
  17. 华为光猫路由器做交换机用
  18. Aspose.Words在word文档合并时如何控制列表编号
  19. 查mysql版本的命令
  20. 字库芯片学习之汉字内码

热门文章

  1. 硫化铜纳米粒/ZIF-8复合材料(CuS@ZIF8载体)|UiO-66/CoSO复合材料|ZIF-67纳米晶表面修饰六咪唑环三磷腈
  2. 戴尔笔记本一键重装win7系统教程
  3. Linux下oracle11Gr2(64位)安装说明
  4. 运行Python代码片段
  5. [渝粤教育] 西南科技大学 园艺作物高产栽培 在线考试复习资料
  6. nc6单据模板设置没有可选的模板问题解决
  7. SQLite管理软件 - SQLiteSpy
  8. YOLOv5实现吸烟行为检测
  9. 状压dp解释及位运算相关介绍
  10. 代驾APP开发多少钱才合适,你真知道吗