文章列表

26k 24 分钟

# 临阵摸鱼 # 注意 无脑 longlong # 读数据 #include<bits/stdc++.h>using namespace std;const int N = 1e4+10;int a[N];int main(){ int n; cin >> n; int cnt = 0; while(scanf("%d", &a[cnt]) != EOF) cnt++; // 注意读数据的写法 sort(a, a+cnt); int ans1, ans2; for(int i = 1; i <...
6.9k 6 分钟

# DFS # 递归和记忆化搜索 1 #include<bits/stdc++.h> 2 using namespace std; 3 int cnt=0; // 统计执行了多少次递归 4 int data[25]; // 存储斐波那契数 5 int fib (int n){ 6 cnt++; 7 if (n == 1 || n == 2) { data[n]=1; return data[n]; } 8 if(data[n]!=0) return data[n]; // 记忆化判断:已经算过,不用再算,直接返回结果 9...
12k 11 分钟

# 时间复杂度 # 排序 # sort 复杂度:O (nlogn) 1 #include<bits/stdc++.h> 2 using namespace std; 3 bool my_less(int i, int j) {return (i < j);} // 自定义小于函数 4 bool my_greater(int i, int j) {return (i > j);} // 自定义大于函数 5 int main (){ 6 int...
10k 9 分钟

# 数组 # 高精度 # 加法 1 #include <bits/stdc++.h> 2 using namespace std; 3 string add(string a,string b){ 4 string s; // 存结果 5 int c = 0; // 进位 6 for(int i=a.size()-1,j=b.size()-1;i>=0||j>=0||c>0;i--,j--){ 7 if(i>=0) c += a[i]-’0’; 8 if(j>=0) c += b[j]- ‘0’; 9 s...
26k 24 分钟

# 高等数据结构 # 并差集 #include <iostream>#include <cstdio>#include <vector>using namespace std;class DisjointSet { public : //rank 记录树的高度 vector<int> rank, p; DisjointSet() {}; DisjointSet(int size) { rank.resize(size, 0);...
30k 27 分钟

# 排序 # 插入排序 #include<iostream>#include<cstdio>#include<cmath>using namespace std;// 打印数列 Avoid print(int A[],int n) { for (int i = 0; i < n; i++) printf("%d%c", A[i], i == n - 1 ? '\n' : ' ');}// 插入排序法void...
4k 4 分钟

# 数字三角形 【问题描述】 上图给出了一个数字三角形。从三角形的顶部到底部有很多条路径。对于每条路径, 把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个 数。此外,向左下走的次数与向右下走的次数相差不能超过 1。 【输入格式】 输入的第一行包含一个整数 N (1 ⩽ N ⩽ 100),表示三角形的行数。 下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。 【输出格式】 输出一个整数表示答案。 【样例输入】 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6...