题目链接

密码:12345678

A题:非常简单。不过容易PE,需要注意空格和空行的输出,用printf输入的时候需要注意getchar()的使用。

#include <iostream>
using namespace std;
int main()
{int n, flag=0;char c;while(cin>>c&&c!='@'){cin>>n;if(flag!=0) cout<<endl;for(int i=0; i<n-1; i++){for(int j=n-i-2; j>=0; j--)cout<<" ";cout << c;if(i==0) cout<<endl;else{for(int k=i*2-2; k>=0; k--)cout<<" ";cout << c << endl;}}for(int i=0; i<2*n-1; i++)cout<<c;cout<<endl;flag = 1;//cout<<"exo me"<<endl;}return 0;
}

下边是组测试数据,注意行末没有空格。

B题:找规律题。打表,就是提前算好,有多组测试数据的时候,效率比较高。

#include <stdio.h>
#define MAXN 50
typedef unsigned long long ULL;
ULL fn[MAXN+1];
void setfn()
{int i;fn[0] = 0;fn[1] = 0;fn[2] = 1;fn[3] = 2;for(i=4; i<=MAXN; i++)fn[i] = fn[i-2] + fn[i-1];
}
int main(void)
{int n, a, b;// 先打表(以防万一测试集合大)setfn();scanf("%d", &n);while(n--) {// 读入a和bscanf("%d%d", &a, &b);// 输出结果printf("%lld\n", fn[b - a + 1]);}return 0;
}

C题:题意:判断一个字符串是不是回文串。

    思路:只需要对这个串从起始位置和末尾位置比较一下,一个for循环就行了。

#include <iostream>
#include <string>
using namespace std;
int main()
{int n,i;string s;cin>>n;while (n--) {cin>>s;bool flag = true;for (i = 0; i < s.size()/2; i++) {if(s[i] != s[s.size() - i - 1]){flag = false;break;}}if(flag) cout<<"yes"<<endl;else cout<<"no"<<endl;}return 0;
}

D题:最短路问题。实际上这个题几乎就是把离散老师上课讲的Dijkstra最短路翻译一下其实只听老师上课讲,应该能懂Dijkstra算法,但你会觉得代码不好实现,而这道题就是教你用Dijkstra算法编程解决最短路问题。(这道题询问的是单源最短路,而Dijkstra也只能解决单源最短路问题,那么如过遇到多源最短路问题该怎么做呢?还有一种解决最短路问题的算法,floyd算法,有兴趣的同学可以了解一下,下边这个链接讲的比较好,代码也容易实现。有些单源最短路问题也能用floyd来写,但是容易超时,对于这个题,用floyd就会超时。只有五行的floyd最短路算法)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
#define inff 1000010
#define maxn 100010
using namespace std;
int e[10100][10100];
int main()
{int dis[201000],book[201000],i,j,n,m,t1,t2,t3,u,v,min;int inf=99999999; //用inf(infinity的缩写)存储一个我们认为的正无穷值//读入n和m,n表示边数,m表示顶点数scanf("%d %d",&n,&m);//初始化for(i=1;i<=m;i++)        //注意是从1到m还是从0到m-1,要看题目怎样输入的for(j=1;j<=m;j++)if(i==j) e[i][j]=0;else e[i][j]=inf;//读入边for(i=1;i<=n;i++){scanf("%d %d %d",&t1,&t2,&t3);if(t3<e[t1][t2])     //连个两点之间有多条,要判断哪个边更小,取较小的边e[t1][t2]=e[t2][t1]=t3;//这是一个无向图,所以两面都要更新}//初始化dis数组,这里是1号顶点到其余各个顶点的初始路程for(i=1;i<=m;i++)dis[i]=e[1][i];//book数组初始化for(i=1;i<=m;i++)book[i]=0;book[1]=1;//Dijkstra算法核心语句for(i=1;i<=m-1;i++){//找到离1号顶点最近的顶点min=inf;for(j=1;j<=m;j++){if(book[j]==0 && dis[j]<min){min=dis[j];u=j;}}book[u]=1;for(v=1;v<=m;v++){if(e[u][v]<inf)    //可以不要{if(dis[v]>dis[u]+e[u][v])dis[v]=dis[u]+e[u][v];}}}cout<<dis[m]<<endl;return 0;
}

E题:递推即可(也可以打表)。

#include <stdio.h>
// 递推式 f(n) = n n<=4,f(n) = f(n-1) + f(n-3) n>4
int cow(int n)
{if(n <= 4)return n;elsereturn cow(n-1) + cow(n-3);
}
int main(void)
{int n;while(scanf("%d", &n) != EOF) {// 判定结束条件if(n == 0)break;// 计算并输出结果printf("%d\n", cow(n));}return 0;
}

F题:非常简单的题目,直接上代码。sort函数用起来很方便啊(起码写起来很方便)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf 1000010
#define maxn 10010
#define ll long long
using namespace std;
int main()
{int n,m;while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)break;int a[110];for(int i=0;i<n;i++)cin>>a[i];a[n]=m;sort(a,a+n+1);for(int i=0;i<n;i++)cout<<a[i]<<" ";cout<<a[n];cout<<endl;}return 0;
}

G题:题意:输入一个正整数n,输出第n个偶数长度的回文数字。

思路:找规律题。写出前几项即可发现规律,第n个偶数长度的回文数字就是将n和“倒序”的n组合而成的,所以这题只 需要输出n,然后倒序输出n就行了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
#define inf 100000010
#define maxn 100010
using namespace std;
int main()
{char a[110000];cin>>a;char b[110000];int len=strlen(a);for(int i=0;i<len;i++){b[len-i-1]=a[i];}cout<<a<<b<<endl;return 0;
}

H题:看似简单,但实际上需要考虑多种情况。首先,没说数据范围,那么数据范围就会有非常大(爆long long)的情况,所以要用数组存;其次,要考虑0的位置,前导零,小数点末尾的0,把它们都删掉,再用strcmp函数比较一下两个字符串是否相同就行了。(这道题的数据比较水,它没有考虑前导零的情况,所以有些同学如果没考虑前导零也能过,下边的代码是考虑了前导零的情况)

#include <cstdio>
#include <cstring>
char a[100017], b[100017];
void re1(char s[])    //去除前导零
{int k=0;int len=strlen(s);for(int i=0;i<len;i++){if(s[i]!='0'){k=i;break;}}for(int i=k;i<len;i++)s[i-k]=s[i];//printf("##%d\n",k);
}
void re2(char s[])     //去除小数点后末尾的0
{int len = strlen(s);int p = 0;for(int i = 0; i < len; i++){if(s[i] == '.'){p = 1;break;}}if(p){for(int i = len-1; i >= 0; i--){if(s[i] == '0')s[i] = '\0';elsebreak;len--;}if(s[len-1] == '.')s[len-1] = '\0';}
}
int main()
{while(~scanf("%s%s",a,b)){re1(a);re2(a);//printf("**%s\n",a);//输出中间的量,debugre1(b);re2(b);//printf("&&%s\n",b);if(strcmp(a,b))printf("NO\n");elseprintf("YES\n");}return 0;
}

NENU 17级算法学习小组Round 3 0606相关推荐

  1. NENU 17级算法学习小组 Roun4 0620

    题目链接 密码:12345678 有些题目用到了枚举,贪心,二分什么的,实际上这并不是什么算法,只是一种思想,用多了就会觉得很自然. A题:题目的意思是给出n个数,要使每个数加上一定的数是得每个都相等 ...

  2. 视觉机器学习20讲-MATLAB源码示例(17)-RBM学习算法

    视觉机器学习20讲-MATLAB源码示例(17)-RBM学习算法 1. RBM学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. RBM学习算法 受限玻尔兹曼机(restricted ...

  3. 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例

    ** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...

  4. LeetCode数据结构与算法学习Day03

    LeetCode数据结构与算法学习Day03 图解数据结构与算法 59 I 滑动窗口最大值 题目描述: 解题思路: 59 II 队列的最大值 题目描述: 解题思路: 67 把字符串转换成整数 题目描述 ...

  5. 算法学习 (门徒计划)3-2 哈希表与布隆过滤器及经典问题 学习笔记

    算法学习 (门徒计划)3-2 哈希表与布隆过滤器及经典问题 学习笔记 前言 哈希表 哈希操作 冲突处理 开放定址法 再哈希法 公共溢出区 链式地址法 扩容哈希表 设计简易哈希表 总结 布隆过滤器 对比 ...

  6. 腾讯首位17级杰出科学家正式诞生!腾讯AI Lab负责人张正友博士获此殊荣

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 来源:鹅厂技术派 就在刚刚,鹅厂首位17级研究员/杰出科学家诞生,腾讯AI Lab及腾讯Rob ...

  7. 无限风光 : 近来地形算法学习小结【转】

    无限风光 : 近来地形算法学习小结 原文链接   目录 -写在前面 -本文话题整体观 -概念(Concepts): 入门须知      -高度图(HeightMap)      -分形(Fractal ...

  8. bzoj3442 学习小组

    目前处于迷之TLE状态 -----6.21更新 已AC 3442: 学习小组 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 200  Solved:  ...

  9. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

最新文章

  1. Spring基础专题——第二章(注入Injection)
  2. 广西互联网金融平台系列-7条奇怪的投资数据
  3. 有关绑定没有数据显示的问题
  4. springBoot后台发送内容至邮箱
  5. 开始食用grpc(之一)
  6. Cannot find source code based button in SE24 - modification assistant
  7. python网络爬虫系列(二)——ProxyHandler处理器实现代理IP
  8. glibc库详解及与POSIX,system V这些库之间关系的说明
  9. JavaScript匿名函数和回调函数
  10. 从0到60%:中国在环球指数当中的崛起
  11. windows c语言 sata 序列号,【Delphi】获取IDE/SATA硬盘序列号
  12. VC下揭开“特洛伊木马”的隐藏面纱
  13. 使用共享文件夹实现上位机和下位机的信息传输
  14. android x86 ib,IB驱动安装
  15. win7计算机无法识别分辨率,window7分辨率显示不正常
  16. 装饰模式 DecoratePattern
  17. QtCreator-----Kits选项选择
  18. C语言输出所有水仙花数字
  19. 优秀笔记软件盘点—好看、强大的可视化笔记软件、知识图谱工具
  20. 人工智能和新能源行业有哪些

热门文章

  1. android缅甸语,Android键盘输入语言设置默认打开myanmar缅甸语的步骤
  2. harmonyos pc,华为鸿蒙系统(HarmonyOS)9月11日发布2.0版本将打通PC、手表和车机等产品终...
  3. day17 实现添加购物车功能
  4. 看穿不揭穿,讨厌不翻脸
  5. 为什么中国需要职业经理人?
  6. M36J 管式土壤墒情监测仪的技术应用
  7. 神盾局特工第一季/全集Agents Of SHIELD迅雷下载
  8. 初中在线测试软件,2020初中生成绩查询网址-2020年初中生成绩查询网址官网最新预约 v1.0-优盘手机站...
  9. SAP 成本计算概念
  10. 道德经--道经篇☞1-5章