两日一题
编程-李老师
关于少儿编程 一些干货分享
展开
-
HiCode信息学奥赛两日一题T12 数组中下标和值相等的元素
题目链接:http://47.104.14.251/problem.php?cid=1000&pid=0#include <iostream>using namespace std;int main(){ int n; cin >> n; int a[n]; for(int i = 0; i < n; i ++){ cin >> a[i]; } int l = 0,r = n -1;原创 2021-05-04 22:42:30 · 246 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T11递归实现组合型枚举
#include <iostream>using namespace std;int path[25];int n,m;void dfs(int u,int start){ if(u > m){ //当搜索层数大于m for(int i = 1; i <= m; i ++){ cout << path[i] << " "; } cout << endl; }else{ for(int i = sta.原创 2021-05-02 17:44:57 · 168 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T10 二维数组中的查找Ⅱ
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){ int n,m,targe; cin >> n >> m >> targe; int a[n][m]; for(int i = 0; i < n; i ++){ for(int j = 0;.原创 2021-04-29 23:16:06 · 161 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T9 二维数组中的查找Ⅰ
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){ int n,m,targe; cin >> n >> m >> targe; int a[n][m]; for(int i = 0; i < n; i ++){ for(int j = 0;.原创 2021-04-28 21:14:57 · 141 阅读 · 0 评论 -
HiCode信息学奥赛两题一题 T8 反转单词顺序
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int main(){ string s; getline(cin,s); reverse(s.begin(),s.end()); for(int i = 0; i < s.size(); i ++.原创 2021-04-26 18:13:02 · 149 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T7 直方图中最大的矩形
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int N = 10010;int s[N]; int main(){ int n; cin >> n; for(int i = 0; i < n; i ++){ int x; cin >> x; s[.原创 2021-04-22 17:14:13 · 128 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T5 A+B升级版
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){ int num1,num2; cin >> num1 >> num2; while(num2){ int sum = num1 ^ num2; int carry = (num1 & num2) &.原创 2021-04-20 14:18:06 · 149 阅读 · 0 评论 -
HiCode信息学奥赛两日一题 T3表达式求值
#include <iostream>#include <cstring>#include <unordered_map> #include <stack> using namespace std;stack<int> num;stack<char> op;void eval(){ int b = num.top();num.pop(); int a = num.top();num.pop(); char c原创 2021-04-16 18:12:59 · 145 阅读 · 0 评论 -
两日一题Question4
题意分析:计算表达式的值,其中包含加号和乘号,结果取后四位考察知识点:栈思路分析:将数字存到栈里面去,当遇到的是加号时,则后面的数字继续入栈;若遇到的是乘号,则栈顶元素出栈,与后一个元素相乘,结果再入栈。最后将栈中所有元素相加即可;C++代码#include <iostream>#include <stack> //栈using namespace std;stack<int> st; //创建一个名为st的栈const原创 2020-09-28 20:32:19 · 180 阅读 · 0 评论 -
两日一题Question3
分析计算k天,骑士得到的金币数;通过推导公式可得:day coin1 1 1^2===============2 23 2 2^2===============4 35 36 3 3^2===============由此可得:1 ^ 2+ 2^ 2 + 3^2............问题的关键:如何确认我们需要累加到哪一天;例如:可以先累加到每天拿获得3个金币的天数,减去多算的部分即可#include <iostream>#include <cmath原创 2020-09-26 19:41:26 · 172 阅读 · 0 评论 -
两日一题Question2
考察知识点: 模拟、枚举解析: 由于老师只能买一种包装的铅笔,因此直接枚举买哪种包装,然后求出最少需要买多少包,才能使总数量不少于 n 即可。其中 n 是老师需要买的铅笔总数。这一题的关键点或是技巧点就在于处理多出来不足一包铅笔的部分的处理手法(在之前奥赛C++在线测评系统中我们处理过类似的题目)。假设当前枚举的包装中的铅笔是 s 个,则最少需要买 ⌈n/s⌉=⌊n+s−1/n⌋包。("⌈ ⌉“代表向上取整,”⌊ ⌋"代表向下取整)时间复杂度: 枚举所有的包装种类,因为包装总类为m,因此总时间复杂度原创 2020-09-24 14:56:11 · 242 阅读 · 0 评论 -
两日一题 Question1
考察知识点:(字符串处理) O(n)解析:当用cin读入char类型时,会自动忽略空白字符,包括空格、制表符、回车等。因此可以直接利用这个特性,统计总共读入多少个非空白字符即可。时间复杂度:每个字符读入一次,因此总时间复杂度是 O(n)。C++ 代码#include using namespace std;int main(){char c;int s = 0;while (cin >> c) s ++ ;cout << s << endl;r原创 2020-09-22 20:42:44 · 191 阅读 · 0 评论