这篇文章主要讨论了DAG上dp和树形dp DAG上dp DAG上的dp一般有记忆化搜索与拓扑排序两种方法来实现。 食物链 食物链 两者时间复杂度都是线性的 拓扑排序解法: #include <iostream> #include <queue> using namespace std; const ...
分类:
其他好文 时间:
2020-09-04 17:25:19
阅读次数:
61
asynclogging类: 作用: 这是一个异步日志类:前端多个线程只管向这个日志类的缓冲区中写入日志,后端利用一个线程把缓冲区中的日志写入文件因此:日志数据流向过程是 [日志->缓冲区->文件]这是一个多生产者,单消费者的任务场景,多生产者负责把日志写入缓冲区,单消费者负责把缓冲区中数据写入文件 ...
分类:
其他好文 时间:
2020-09-04 17:22:47
阅读次数:
44
http://acm.hdu.edu.cn/showproblem.php?pid=6880 根据长度为n的排列a,构造长度n-1的序列b 思路:DP 官方题解: 代码: #include<iostream> #include<cstdio> #include<cstring> #include<a ...
分类:
其他好文 时间:
2020-09-03 17:00:42
阅读次数:
38
AC代码: #include<bits/stdc++.h> using namespace std; void solve() { int n; cin >> n; if (n <= 30) cout << "no" << endl; else { if (n != 36 && n != 40 && ...
分类:
其他好文 时间:
2020-09-03 16:59:36
阅读次数:
43
一.大数加法 定义两个足够大的数字,其数值远超过long的取值范围,设该大数的位数有两百位,求其相加所得 大数加法的核心思想详见此链接,内有详细的动画演示,这里不再赘述 大数加法、大数阶乘 直接上代码: #include<string.h> #include<stdio.h> #define N 1 ...
分类:
编程语言 时间:
2020-08-31 11:54:08
阅读次数:
55
#include <stdio.h>#include <malloc.h>//结点结构体定义typedef struct link_node { int n;//数据域 struct link_node *next;//指针域:(此时结构体尚未定义完整,不能用 NODE *next; )用该结构体类 ...
分类:
其他好文 时间:
2020-08-28 15:04:53
阅读次数:
74
$\text 首先,红点只能与红点和绿点相连,蓝点只能与蓝点和绿点相连。 假设两个相邻绿点(这里的相邻是编号上的相邻)中间一堆红点和蓝点,我们一定把红点蓝点分别顺次连接就像这样: 显然红蓝点这样连成一条链再连上绿点要比一个个连上绿点要优。 我们继续考虑上图,发现并不需要连这么多条边。我们可以选择删除 ...
分类:
其他好文 时间:
2020-08-28 14:40:45
阅读次数:
56
#include <bits/stdc++.h> #define INF (1<<25) #define MAXN 200005 #define getSZ(p) (p?p->sz:0) #define getSUM(p) (p?p->sum:0) using namespace std; type ...
分类:
其他好文 时间:
2020-08-28 14:34:02
阅读次数:
43
include<stdio.h> include<malloc.h> typedef struct Queue { int * pBase; int front; int rear; }QUEUE,*PQUEUE; void init_queue(PQUEUE);//初始化 bool en_queu ...
分类:
其他好文 时间:
2020-08-28 14:28:37
阅读次数:
45
#include <reg52.h>#include <intrins.h> sbit LED0 = P0^0;sbit LED1 = P0^1;sbit LED2 = P0^2;sbit LED3 = P0^3;sbit LED4 = P0^4;sbit LED5 = P0^5;sbit LED6 ...
分类:
其他好文 时间:
2020-08-28 14:25:59
阅读次数:
43