![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hnu小学期程序设计C++版
一袍清酒付825
转Tswatery.github.io
展开
-
hnu 暑期实训之回文串
文章目录题目思路AC代码题目思路回文串首先可以对所给的字符串判断一下看看是不是回文串,如果是就直接输出0;对于不是回文串的,我们先来观察一段回文串"abcba"对于给出的串"abc"的话,我们可以先对其逆序得到"cba",然后将它的后i位接进去,就可以发现答案会是2.一定不能正序接入,因为得优先满足回文串的条件:首末位相等。AC代码#include <bits/stdc++.h>using namespace std;bool reverse_string(string原创 2021-09-15 11:14:37 · 257 阅读 · 0 评论 -
hnu 暑期实训之疫情期间
文章目录题目思路AC代码题目【样例输入1】41 3 2 0【样例输出1】2【样例输入2】71 3 3 2 1 2 3【样例输出2】0【样例输入3】22 2【样例输出3】1【样例说明】在第一个样例中,阿迪在第一天编写程序,在第三天做运动,因此他仅有两天可以休息。在第二个样例中,阿迪可以在第1、3、5、7天编写程序,其他天做运动,因此没有哪天休息。在第三个样例中,阿迪可以在第1天或第2天做运动,但不能连续两天运动,因此他有一天休息。思路淦 动态规划的特点我觉得是代码原创 2021-09-15 10:29:34 · 233 阅读 · 0 评论 -
hnu 暑期实训之最少钱币数
文章目录题目AC代码及思路收获题目AC代码及思路#include <bits/stdc++.h>using namespace std;int main() { int price, n; while (cin >> price, price != 0) { cin >> n; int *arr; arr = new int[n + 1]; for (int i = 1; i <= n; ++i) { cin >>原创 2021-09-14 09:22:07 · 121 阅读 · 0 评论 -
hnu 暑期实训之蛇形矩阵
文章目录题目![在这里插入图片描述](https://img-blog.csdnimg.cn/2340a76f57c7440d937ed2b38107f60f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiA6KKN5riF6YWS5LuYODI1,size_20,color_FFFFFF,t_70,g_se,x_16)AC代码题目AC代码#include <bit原创 2021-09-13 17:02:45 · 114 阅读 · 0 评论 -
hnu 暑期实训之web导航
文章目录题目思路AC代码python版题目【问题描述】标准的Web浏览器具有在最近访问的页面中前后移动的特性。实现这些特性的一种方法是使用两个堆栈来跟踪可以通过前后移动到达的页面。在这个问题中,我们要求实现这一点。 需要支持以下命令: BACK:将当前页面压入前向堆栈的顶部;从后向堆栈的顶部弹出该页,使其成为新的当前页。如果后向堆栈为空,则该指令忽略。 FORWARD:将当前页面压入后向堆栈的顶部;从前向堆栈的顶部弹出该页,使其成为新的当前页。如果前向堆栈为空,则该指令忽略。原创 2021-09-09 11:13:02 · 182 阅读 · 0 评论 -
hnu 暑期实训之到底买不买
文章目录题目思路AC代码题目思路外层遍历小红要的珠子,内层遍历商家提供的珠子,如果相等计数器就+1.遍历完成后,对于计数器,它的最大值只会是小红珠子的长度。如果它们相等就说明小红可以搞到这个珠子,然后用商家珠子的长度减去小红珠子的长度就可以得到剩余的珠子数。否则就说明不能搞成这个柱子,用小红的珠子数减去计数器就是缺的个数。AC代码#include <bits/stdc++.h>using namespace std;int main() { string a, b; //店家原创 2021-09-09 10:11:20 · 69 阅读 · 0 评论 -
hnu 暑期实训之A除以B
文章目录题目思路AC代码题目思路本题模拟平时做除法即可,但是要注意一些特殊情况,比如被除数小于除数、被除数较大时但是首位较小(1234567/7,因为此时可能会有前导0)AC代码//利用除了第一位特殊点儿外其他位都需要进1#include <bits/stdc++.h>using namespace std;int main() { string s1; int B, temp = 0, i = 0; cin >> s1 >> B; int l原创 2021-09-08 15:07:20 · 106 阅读 · 0 评论 -
hnu 暑期实训之挖掘机技术哪家强
文章目录题目思路AC代码题目思路人都说用map了还不用,你是闹着玩么.AC代码#include <bits/stdc++.h>using namespace std;map<int, int> m;int main() { int n; cin >> n; map<int, int>::iterator it; for (int i = 1; i <= n; ++i) { int a, b; scanf("%d %d"原创 2021-09-07 22:20:29 · 73 阅读 · 0 评论 -
hnu 暑期实训之公交系统
文章目录题目思路AC代码后言题目思路思路是当第一站人数为0时,找出车上人数的最大值与最小值,最后对w进行遍历,只要最大值+遍历变量<=w并且最小值+遍历变量>=0,就可以。AC代码#include <cstdio>#include <cmath>using namespace std;int n, w; //表示车站个数以及最大能容纳的人数int arr[1010];//n最大为1000 多定义10个int every_s_num[1010];/原创 2021-09-07 22:02:20 · 89 阅读 · 0 评论 -
hnu 暑期实训之相同生日
文章目录题目思路AC代码题目思路思路就是利用结构体来存储对应学生的信息,然后利用一个cmp函数对结构体进行排序,注意我的结构体遍历时从1开始的,所以应该是sort(S+1,S+1+n),因为比较习惯从1开始hhhh 。后面利用双层循环遍历输出即可。AC代码#include <bits/stdc++.h>using namespace std;struct student { char number[11]; int month; int day;} S[210];b原创 2021-09-07 10:07:13 · 128 阅读 · 0 评论 -
hnu暑期实训之日历问题
文章目录题目思路AC代码题目思路如果给定一个天数n,让我们确定它是2000年1月1日后的什么时间,那么我们应该是逐年计算,确定在哪一年后再逐月计算再确定天数即可。但是注意这个题目的描述,是从2000年1月1日开始记的,那么说明n=1的时候,应该是2000年1月2日周天。所以在计算完星期后,要将n++。因为星期是要累加的,而日子是直接计算出来的。AC代码#include <bits/stdc++.h>using namespace std;map<int, string&g原创 2021-09-07 08:55:36 · 112 阅读 · 0 评论 -
hnu 暑期实训之选美比赛
文章目录题目思路AC代码题目思路思路在于建立一个结构体来表示每个选手的分数与排名,每个选手的排名初始化为1,然后需要一个数组用于去重(用set的话内存比较多比较慢),再逐个遍历比较,分数小的就名次+1即可。AC代码#include <bits/stdc++.h>using namespace std;int arr[110], arr1[110], n;struct ctor { int score; int grade;} gamer[110];int main(原创 2021-09-06 11:17:25 · 110 阅读 · 0 评论 -
hnu 暑期实训之7还是7 to_string的实现方法
文章目录题目思路AC代码收获题目思路思路其实很简单,利用字符串与模运算即可。AC代码#include <bits/stdc++.h>using namespace std;string to_String(int n) { char m; string res; while (n != 0) { int a = n / 10; m = (n - a * 10) + '0'; res = m + res; n = a; } return res;}原创 2021-09-06 10:36:26 · 123 阅读 · 0 评论 -
hnu 暑期实训之Maya历法
文章目录题目思路AC代码收获题目思路思路就是模拟跟着走就可以了。注意在取模运算的时候,如果a mod b当a==b的时候得到的结果是0,但是这题显然我们并不想得到0,所以要判断一下。既然是两种值的判断,那就不如玩点好玩的:三目运算符。a=(条件判断) ? 值1:值2.跟python中的if-else很像,但是C++的比较抽象,如果条件判断为真,那么就选择值1,否则就选择值2.AC代码#include <bits/stdc++.h>using namespace std;/原创 2021-09-02 20:25:21 · 136 阅读 · 0 评论 -
hnu 暑期实训之愚人节的礼物
文章目录题目思路AC代码收获题目思路利用字符串的find函数找到B的位置,循环B左侧的字符,遇到左括号就+1,遇到右括号就-1(反正是合法的,空箱子一加一减也就不变了),出sum1即可。AC代码#include <bits/stdc++.h>using namespace std;int a, i;int main() { string s; while (cin >> s) { a = s.find("B"); //也有可能不含B 就直接不用找就是0了原创 2021-09-02 16:18:59 · 86 阅读 · 0 评论 -
hnu暑期实训之数塔 巧妙地设定一个偏移量
文章目录题目思路AC代码收获题目思路其实如果只是找路径的最大值的话,这是一个典型的多阶段最优解问题,要应用动态规划来求解,但是如果要输出所走过的路径的话,就比较麻烦。可以发现的是,这个题目,对于塔顶的数字,如果我们进行对x坐标的循环遍历,那么它是会一直向左下走动的。我们需要做的就是在它向右下走动的时候,设置一个对y的偏移量1,使它向右下移动。利用递推法可以将复杂度降低到O(n2),自下向上递推,如果左边的数比右边的大,那么就不需要偏移了;如果左边的比右边的小,那么就需要偏移。AC代码#incl原创 2021-08-31 11:44:01 · 104 阅读 · 0 评论 -
hun 暑期实训之打牌 cin与scanf的输入
文章目录题目思路AC代码关于cin与scanf的输入问题题目思路就不断模拟就好了。用一个map存每个字符对应的个数。对于输入的字符串按照长度来区分两种情况,因为当长度为5的时候比较复杂。当长度小于5的时候,就遍历map就好了,个数大于等于这个长度就逐个输出就好了;当长度为5的时候,我是通过字符串转化函数to_string与stoi来对字符串不断+11111看它们在map中的个数是否大于0,并用一个num变量来判断正确数字个数,如果num恰好等于5那么就可以输出了。AC代码人越菜 if-else越原创 2021-08-28 16:51:00 · 106 阅读 · 0 评论 -
hnu 暑期实训之魔咒词典
文章目录题目思路AC代码题目思路这题比较容易,108在oj也能过就暴力循环了,用哈希+二分会不会简单点呢。。AC代码#include <bits/stdc++.h>using namespace std;unordered_map<string, string> m;string s, name, func, found;int a;int main() { while (getline(cin, s), s != "@END@") {//注意两者之间要加原创 2021-08-28 10:25:55 · 143 阅读 · 0 评论 -
hun暑期实训 最大报销额(01背包) 关于动态内存分配的new与delete
文章目录题目思路AC代码new与delete题目思路这个题主的难点要有三个方面。第一个方面是数据不好输入。题目中所给的数据都是做题需要的数据,而且是需要分开存储的。对于字母:数字的格式输入,我们可以采用scanf的格式化输入来完成,从而实现,字母、数字分开操作;第二个方面就是01背包的问题,这个题目给出的数据全是小数,而01背包的一维数组类型需要对背包内存Q进行逆序循环,从而要求是整数,由于题中所给出的小数都是两位数的,所以我们可以将它们×100再进行运算;第三个方面是01背包问题中一维数组创原创 2021-08-28 09:49:25 · 166 阅读 · 0 评论 -
hnu暑期实训 数码管儿
文章目录题目思路AC代码题目思路题目说是要用位运算,为此我还专门发了一篇力扣 201数字范围按位与 来学习一下位运算。然后搞了一下午还是不会用位运算来解决,所以直接用暴力循环了,因为本身这个题的数据范围不是很大,循环1000次都才104.AC代码#include <bits/stdc++.h>using namespace std;int arr[20];int main() { while (true) { bool flag = true; for (int原创 2021-08-26 16:08:34 · 133 阅读 · 0 评论 -
hnu暑期CCF培训之多项式加法
文章目录题目思路AC代码收获题目描述的很简单,注意系数有可能是浮点数要用double存。思路其实思路很简单,不需要使用map与vector。用一个结构体存储每一项,有系数还有幂指数,然后第一次全部输入,第二次输入判断这个结构体数组中有没有这个数,有的话就加上,没有的话就在后面继续接上即可。AC代码#include <iostream>#include <algorithm>using namespace std;struct num_I { int c_num原创 2021-08-21 11:01:35 · 416 阅读 · 0 评论 -
hnu暑期实训之487-3279 字符串处理
文章目录题目AC代码思路收获题目AC代码#include <iostream>#include <vector>#include <set>#include <algorithm>using namespace std;int main() { int n; cin >> n; vector<string> v1;//建立一个存储string的容器 getchar();//去掉换行符 for (int i原创 2021-08-04 17:25:09 · 112 阅读 · 0 评论 -
hnu小学期实训之数圈
文章目录题目思路代码收获题目思路其实看到的第一眼我是想利用递归来求解的,但是它这个数圈很奇怪,不是很好利用第n-1个数圈推出第n个数圈。所以就模拟一个一个的暴力打出来。两点在于定义了一个拐角变量turn。因为这个题目的关键就是得到了第n-1个数圈后怎么将打印的方向拐过来,继续打印第n个数圈。每个对应的n应该具备两个这样的拐角点。每4个后就重新回到了原来的打印方向,所以用swich语句来写即可。代码#include <iostream>using namespace std;int原创 2021-08-03 15:30:32 · 244 阅读 · 0 评论 -
一个由C++程序而引出的问题
今天在做大数除法的时候,发现了一个问题。题目是hnu小学期的A除以B的那个实训题,很简单。代码如下#include <iostream>#include <string.h>using namespace std;int main() { string s1; int B, num1[2000] = {0}, num2[2000] = {0}, i = 0; cin >> s1 >> B; int len = s1.size(); //原创 2021-07-31 09:53:27 · 58 阅读 · 0 评论 -
string转换函数以及hnu暑期实训部分和A+B的例题
目录string和数值转换函数stoi(s) stoll(s) stof(s)to_string(int n)、to_string(double a)需要C++11的语法支持,具体操作时devcpp的工具栏里选择编译选项勾选编译时使用以下命令,输入-std=c++11即可。string和数值转换字符串转为数字函数stoi(s) stoll(s) stof(s)分别是字符串转换为对应的整数,长整型,浮点数。s是字符串的意思 to是转换的意思 就很好记了。int main(){string s1原创 2021-07-28 08:50:37 · 76 阅读 · 0 评论