Dotcpp编程2019年三月蓝桥杯专场
题目链接http://www.dotcpp.com/oj/contest1480.html
问题 B: 汉诺塔
#include<iostream> using namespace std; int n; void move(int a,int n,int b){ //将编号为n的木块 从a移到b cout << "Move " << n << " from " << a << " to " << b << endl; } void Ham(int n,int a,int b,int c){ //将n块木块从a移到c上,b为辅助 if (n == 1) move(a,n,c); else{ Ham(n - 1, a, c, b); move(a,n,c); Ham(n - 1,b,a,c); } } int main() { cin >> n; Ham(n,1,2,3); return 0; }
问题 C: 线段覆盖
暴力
#include<iostream> using namespace std; int n,m; int l, r, c,x; int a[100000 + 10]; int main() { cin >> n >> m; while (m--){ cin >> l >> r >> c; for (int i = l; i <= r; i++) a[i] = c; } cin >> x; cout << a[x] << endl;; return 0; }
问题 E: 数数字
#include<iostream> #include<algorithm> using namespace std; typedef long long ll; ll m, n; int main() { ll ans = 0; cin >> n >> m; n %= 15, m %= 15; if (n > m){ m += 15; } for (int i = n; i <= m; i++){ ans += i; } cout << ans % 15 << endl; return 0; }