自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 《算法竞赛入门经典》(第2版)——习题2-5 分数化小数

这道题的难点在于精确到小数点后c位,c是个变量,因而习以为常的%.nf就不适用了,所以要换一种思维去思考这个问题。 首先,a/b可以得到正常除法a/b的小数点前的整数,因而设计如下代码: printf("Case %d:%d.",count,a/b); 然后,考虑如何将小数逐一输出,直到要精确的位数,设计的代码如下: d=(double)a/b-a/b; / /得到...

2020-02-11 22:35:12 443 2

原创 2022-03-11每日刷题打卡

一、AcWing 99. 激光炸弹 1. 问题描述 2. 问题解决 #include <iostream> using namespace std; typedef long long LL; const int N = 5010; int n, r; int s[N][N]; int max_x, max_y; int main() { cin >> n >> r; r = min(5001, r); max_x = max

2022-03-11 21:02:33 393 1

原创 2022-03-10每日刷题打卡

一、AcWing 1221. 四平方和 1. 问题描述 2. 问题解决 #include <cstring> #include <iostream> #include <algorithm> #include <unordered_map> #define x first #define y second using namespace std; typedef pair<int, int> PII; const int N = 2500

2022-03-10 21:05:33 334

原创 2022-03-09每日刷题打卡

一、AcWing 789 数的范围 1. 问题描述 2. 问题解决 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 100010; int n, m; int q[N]; int main() { scanf("%d%d", &n, &m);

2022-03-09 21:19:15 334

原创 2022-03-09每日刷题打卡

一、AcWing 789 数的范围 1. 问题描述 2. 问题解决 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 100010; int n, m; int q[N]; int main() { scanf("%d%d", &n, &m);

2022-03-09 21:18:09 258

原创 2022-03-08每日刷题打卡

一、蓝桥杯 2017 K倍区间 1. 问题描述 2. 问题解决 #include <iostream> #include <cstring> using namespace std; const int N = 1e5 + 10; int a[N], cnt[N]; int n, k; long ans; int main() { cin >> n >> k; long sum = 0; for(int i = 0; i < n;

2022-03-08 21:24:49 151

原创 2022-03-04每日刷题打卡

一、蓝桥杯 2017 贪吃蛇长度 1. 问题描述 2. 问题解决 #include <iostream> using namespace std; int main() { char c; int end = 0, ans = 0; while(c = getchar()) { if(c == '+') end++; if(end == 4) break; if(c == '#') ans++; if(c == '@') ans += 2; }

2022-03-04 19:33:21 94

原创 2022-03-03每日刷题打卡

一、蓝桥杯 2017 迷宫 1. 问题描述 2. 问题解决 #include <iostream> #include <cstring> using namespace std; char g[15][15]; bool is_out(int x, int y) { while(g[x][y] != ' ') { if(g[x][y] == 'L') { y--; if(g[x][y] == 'R') return false;} if(g[x][y] ==

2022-03-03 21:25:36 156

原创 2022-03-02每日刷题打卡

一、蓝桥杯 2017 等差素数列 1. 问题描述 2. 问题解决 #include <iostream> #include <cmath> using namespace std; bool is_prime(int a) { for(int i = 2; i <= sqrt(a); i++) if(a % i == 0) return false; return true; } int main() { int count = 0; for(int

2022-03-02 21:26:30 153

原创 2022-03-01每日刷题打卡

一、一本通 1311:【例2.5】求逆序对 1. 问题描述 2. 问题解决 #include <iostream> using namespace std; const int N = 1e5 + 10; typedef long long LL; int a[N], tmp[N]; LL f(int a[], int l, int r) { if(l >= r) return 0; int mid = l+r >> 1; LL res = f(a, l

2022-03-01 21:22:45 140

原创 2022-02-21每日刷题打卡

一、一本通 1260:【例9.4】拦截导弹(Noip1999) 1. 问题描述 2. 问题解决 #include<iostream> using namespace std; int a[N],b[N],c[N]; int main() { int n=0,maxx=1; while(scanf("%d",&a[n++])!=EOF) for(int i=0;i<n;i++) { b[i]=1;

2022-02-21 19:35:43 254

原创 2022-02-20每日刷题打卡

一、一本通 1258:【例9.2】数字金字塔 1. 问题描述 2. 问题解决 #include<iostream> using namespace std; int a[N][N],f[N][N]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) cin>>a[i][j]; for(i

2022-02-20 23:07:04 325

原创 2022-02-18每日刷题打卡

一、AcWing 901. 滑雪 1. 问题描述 2. 问题解决 #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 310; int n, m; int g[N][N]; int f[N][N]; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1}; int dp(int x,

2022-02-18 22:06:08 182

原创 2022-02-17每日刷题打卡

一、AcWing 91. 最短Hamilton路径 1. 问题描述 2. 问题解决 #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 20, M = 1 << N; int n; int w[N][N]; int f[M][N]; int main() { cin >> n; for

2022-02-17 19:59:09 327

原创 2022-02-16每日刷打卡

一、AcWing 338. 计数问题 1. 问题描述 2. 问题解决 #include <iostream> #include <algorithm> #include <vector> using namespace std; const int N = 10; int get(vector<int> num, int l, int r) { int res = 0; for (int i = l; i >= r; i -- )

2022-02-16 21:33:42 386

原创 2022-02-15每日刷题打卡

一、AcWing 282. 石子合并 1. 问题描述 2、问题解决 #include <iostream> #include <algorithm> using namespace std; const int N = 310; int n; int s[N]; int f[N][N]; int main() { scanf("%d", &n); for (int i = 1; i <= n; i ++ ) scanf("%d", &s

2022-02-15 21:01:10 772

原创 2022-02-14每日刷题打卡

一、AcWing 902 最短编辑距离 1. 问题描述 2. 问题解决 #include <iostream> #include <algorithm> using namespace std; const int N = 1010; int n, m; char a[N], b[N]; int f[N][N]; int main() { scanf("%d%s", &n, a + 1); scanf("%d%s", &m, b + 1);

2022-02-14 21:44:59 343

原创 2022-02-13每日刷题打卡

一、AcWing 896. 最长上升子序列 II 1. 问题描述 2. 问题解决 #include<iostream> #include<algorithm> #include<vector> using namespace std; int main(void) { int n; cin >> n; vector<int>arr(n); for (int i = 0; i < n; ++i)cin >>

2022-02-13 19:57:17 98

原创 2022-02-11每日刷题打卡

一、AcWing 898. 数字三角形 1. 问题描述 2. 问题解决 #include <iostream> using namespace std; const int N = 510, INF = 1e9; int n; int f[N][N], a[N][N]; int main() { cin >> n; for(int i = 1; i <= n; i++) for(int j = 1; j <= i; j+

2022-02-11 17:43:45 467

原创 2022-02-10每日刷题打卡

一、AcWing 4. 多重背包问题 1. 问题描述 2. 问题解决 #include <iostream> #include <algorithm> using namespace std; const int N = 110; int n, m; int v[N], w[N], s[N]; int f[N][N]; int main() { cin >> n >> m; for(int i = 1; i <= n;

2022-02-10 19:25:35 506

原创 2022-02-09每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 02 01背包 1. 问题描述 2. 问题分析 状态表示:f[i][j],表示当前选择的最大值,其属性为max,i表示物品编号,j表示背包可使用的体积 状态计算:f[i][j] = max(f[i-1][j], f[i-1][j-v[i]] + w[i]) 3. 问题解决 #include <iostream> #include <algorithm> using namespace std; const int N =

2022-02-09 18:02:35 1257

原创 2022-01-22每日刷题打卡

一、一本通 1343 牛的旅行 1.1 问题描述 1.2 问题分析 这道题套用Y总的朴素版dijskra算法模板,只需要更改一下起点和终点就行 1.3 问题解决 #include <cmath> #include <iostream> #define INF 0x3f3f3f3f #define x first #define y second using namespace std; typedef pair<int, int> PII; const int

2022-01-22 17:14:00 386

原创 2022-01-21每日刷题打卡

一、一本通 1352 奖金 1.1 问题描述 1.2 问题分析 这道题使用拓扑排序的思想来做,题目要求a->b,发现不好算,就把这个图倒过来存,就比较好算了。 1.3 问题解决 #include <cstring> #include <iostream> using namespace std; const int N = 1e5 + 10; int n, m; int h[N], e[N], ne[N], idx; int d[N], s[N]; int q[N];

2022-01-21 21:53:59 399

原创 2022-01-19每日刷题打卡

一、一本通 1341 一笔画问题 1.1 问题描述 1.2 问题解决 #include<iostream> using namespace std; int n,m; int g[N][N]; int dis[N],path[N*2]; int cnt; void dfs(int i) { for(int j=1;j<=n;j++) if(g[i][j]) { g[i][j]=0; g[j][i]=

2022-01-19 20:21:52 411

原创 2022-01-17每日刷题打卡

一、一本通 1329 细胞 1.1 问题描述 1.2 问题解决 #include <iostream> #include <queue> #define x first #define y second using namespace std; typedef pair<int, int> PII; const int N = 1e4 + 10; char g[N][N]; int n, m; int dx[4] = {-1, 0, 1, 0}, dy[4] =

2022-01-17 22:27:42 286

原创 2022-01-16周总结

一、AcWing 842. 排列数字 1.1 问题描述 1.2 问题分析 从第0个位置开始dfs; dfs结束条件:当搜索到第n个位置时,说明0~n-1的位置已经排列好了; 然后在当前u位置上,从1~n放符合条件的数,找到后继续向下一个位置搜索; 从下面回来后,恢复现场; 1.3 问题解决 #include <iostream> using namespace std; const int N = 15; int n; int a[N]; bool st[N]; v

2022-01-16 22:05:56 292

原创 2022-01-14每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 851. spfa求最短路 1. 问题描述 2. 问题解决 #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; const int N = 100010; int n, m; int h[N], w[N], e[N], ne[N], idx; int dist

2022-01-14 22:13:10 145

原创 2022-01-13每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 850. Dijkstra求最短路 II 1. 问题描述 2. 问题解决 #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; typedef pair<int, int> PII; const int N = 1e6 + 10; int n, m

2022-01-13 21:57:12 80

原创 2022-01-12每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 848. 有向图的拓扑序列 1. 问题描述 2. 问题分析 找到一个入度为0的点作为拓扑序列的第一个点; 把该点和该点所有的边从图中删去; 再在新的图中选择一个入度为0的点作为拓扑排序的第二个点; 以此类推,如果所有节点尚未删去时找不到入度为0的点则说明剩余节点存在环路,不存在拓扑排序。 3. 问题解决 #include <cstring> #include <iostream> #include <al

2022-01-12 22:32:52 242

原创 2022-01-11每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 847. 图中点的层次 1. 问题描述 2. 问题分析 这题基本上就是使用图套上bfs的模板就可以了 3. 问题解决 #include <iostream> #include <cstring> #include <queue> using namespace std; const int N = 1e5 + 10; int n, m; int h[N], e[N], ne[N], idx; int d[N];

2022-01-11 21:44:33 211

原创 2022-01-10每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 845. 八数码 1. 问题描述 2. 问题分析 没理解,之后在消化 3. 问题解决 #include <iostream> #include <algorithm> #include <queue> #include <unordered_map> using namespace std; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1}; int bf

2022-01-10 22:09:37 457

原创 2022-01-09周总结

一、AcWing-838:堆排序 1.1 问题描述 1.2 问题解决 #include <iostream> using namespace std; const int N = 1e5+10; int n, m; int q[N]; void heap_adjust(int q[], int n, int i) { for (int j = i*2 + 1; j <= n-1; j = j*2 + 1) { if(j < n-1 &&

2022-01-09 21:46:29 493

原创 2022-01-08每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing 4206. 判断数字 1. 问题描述 2. 问题分析 这道题是周赛的一道签到题 3. 问题解决 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { string s; int ans = 0; cin >> s; for(auto

2022-01-08 21:25:03 191

原创 2022-01-07每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-799:最长连续不重复子序列 1. 问题描述 2. 问题解决 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 1e5 + 10; int a[N], s[N]; int n; int res = 0; int main() { scanf("%d", &n);

2022-01-07 22:53:35 305

原创 2022-01-06每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-842:排列数字 1. 问题描述 2. 问题分析 3. 问题解决 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 12; int path[N]; bool flag[N]; int n; void dfs(int u) { // 走到头后执行的操作 if(

2022-01-06 22:03:21 440

原创 2022-01-05每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-789:差分矩阵 1. 问题描述 2. 问题分析 3. 问题解决 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 1010; int n, m, q; int a[N][N], b[N][N]; void modify(int x1, int y1, int x2, int

2022-01-05 22:11:07 435

原创 2022-01-04每日刷题打卡

一、Y总视频进度 二、刷题 2.1 干草堆 1. 问题描述 2. 问题分析 做题思路: 如果a[n]数组全部是0,那么其差分数组b[n]也全部是0;如果a[n]数组不是全部为0,则进行第二步操作; 构造差分数组b[n],进行n次: b[i] += c; b[i+1] -= c; (i 属于 1-n)操作; 3. 问题解决 #include <iostream> #include <algorithm> using namespace std; const int N =

2022-01-04 21:31:58 439

原创 2022-01-03每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-795:前缀和 1. 问题描述 2. 问题分析 3. 问题解决 #include <iostream> using namespace std; const int N = 1e5 + 10; int a[N], s[N]; int main() { int n, m; scanf("%d %d", &n, &m); for(int i = 1; i < n+1; i++) scanf("%d", &am

2022-01-03 17:53:12 994

原创 2022-01-02每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-838:堆排序 1. 问题描述 2. 问题分析 堆是实现优先队列的一种数据结构,是一种特殊的完全二叉树。 堆排序的模板应当背下来。 3. 问题解决 #include <iostream> using namespace std; const int N = 1e5 + 10; int q[N]; void heap_adjust(int q[], int i, int n) { for(int j = i*2+1; j < n;

2022-01-02 21:20:36 376

原创 2022-01-01每日刷题打卡

一、Y总视频进度 二、刷题 2.1 AcWing-791:高精度加法 1. 问题描述 2. 问题解决 #include <iostream> #include <vector> using namespace std; vector<int> add(vector<int> &A, vector<int> &B) { if(A.size() < B.size()) return add(B, A); vector

2022-01-01 20:49:33 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除