题意
给出一张有向无环图,求出用最少的路径覆盖整张图,要求路径在定点处不相交
输出方案
Sol
定理:路径覆盖 = 定点数 - 二分图最大匹配数
直接上匈牙利
输出方案的话就不断的从一个点跳匹配边
#include&l
题意
$n$道试题,每道题有多种类别属性
抽取$m$道题组成试卷,要求包含指定的类型
输出方案
Sol
又是一道zz网络流
我的构图长这样,$k_i$表示第$i$道试题需要的数量
#inclu
题意
$m$个不同单位代表参加会议,第$i$个单位有$r_i$个人
$n$张餐桌,第$i$张可容纳$c_i$个代表就餐
同一个单位的代表需要在不同的餐桌就餐
问是否可行,要求输出方案
Sol
比较zz的最大流
从$S$向$1-m$
AC自动机入门
我学的时候看的是yyb的博客
链接一个神奇的东西
讲之前的bb
PS:不要想着马上能理解AC自动机,那是不可能的。建议先大致理解一下,然后敲几次板子,这样虽然自己心里不爽,但是在敲板子的过程中就会慢慢理解了
一.算法基础
1.KMP字符串匹配
2.trie树
要求入门并能有一定技
C++远征之封装篇(上)
课程简介
类(抽象概念),对象(真实具体)
配角: 数据成员和成员函数(构成了精彩而完整的类)
构造函数 & 析构函数(描述了对象的生生死死)
对象复制和对象赋值 (使类的定义充满艺术)
对象数组和对象指针 (将应用型态发挥到淋漓尽致)
this指针(影子,贯穿大戏
复习1、一级指针 int*p 指向int的指针 赋值 int x; p=&x;// *p=2; 指针指向的谁 解引用之后就是谁2、内存四区 堆区 需要自己手动申请内存 自己释放 (malloc free realloc(内存重新分配) alloc(比malloc多了一个赋
题意
$n$个节点的树,每个点有权值,支持三种操作
1、 换根
2、把$x$到$y$路径上节点权值变为$z$
3、询问路径最小值
Sol
啥?你说这是TopTree的裸题?那你写去啊
很显然,如果没有第一个操作就是树剖的裸题
伟大的2320学长特别喜欢打地鼠游戏,这个游戏开始后,会在地板上冒出一些地鼠来,你可以用榔头去敲击这些地鼠,每个地鼠被敲击后,将会增加相应的游戏分值。可是,所有地鼠只会在地上出现一段时间(而且消失后再也不会出现),每个地鼠都在0时刻冒出,但停留的时间可能是不同的,而且每个地鼠被敲击后增加的游戏分值也
题目描述:
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the near
改进版
BFS
#include <bits/stdc++.h>
using namespace std;
#define coordi(x,y) ( m*(x-1)+y )
const int maxn = 30;
const int dx[] = {0,0,1,-1};
迷宫问题思路
根据昨天的博客,有如下几种解决方案
克鲁斯卡尔 ,为避免死循环,需要设定优化路径的次数。
Prim,为避免死循环,需要设定优化路径的次数,暂定200次。
BFS , 实现简单,无死循环。
DFS , 实现简单,无死循环,复杂度较低。
动态规划,实时根据权重调整方向,目前看来最合适的
指针1、指针的概述 指针是什么? 指针是一个地址 是一个常量 int 整型 int a a是变量 指针用来做什么? 方便使用数组或者字符串 像汇编语言一样处理内存地址2、指针变量 什么是指针变量? 是一个可以存储地址的一个“容器” 经常会吧指针变量 读作指
题意
。。。求最短路
Sol
前几天写dijkstra的时候没打vis标记居然A了,然后天真的我就以为Dijkstra不用打标记。
事实上dijkstra真的不用打标记,只不过会被卡成SPFA的复杂度
#include<cstdio
1 sockaddr_in、sockaddr_in6和sockadd_un等都可以强制转换为sockaddr.
2 IP地址是电分十进制形式的字符串,但是在网络中使用的是unsigned int类型的数才能使用。
in_addr_t inet_addr(const char* strptr);
题意:
有 n 个坐标,求用抛物线 y=ax^2+bx 将它们全部穿过所需的最少个数
思路:
状压dp 另外对于被同一条抛物线穿过的两点,有: a=(x2y1-x1y2)/(x1x2(x1-x2), b=(x1x1y2-x2x2y1)/(x1x2*(x1-x2
相关软件:
1、ActivePerl 5.22.1 : http://www.activestate.com/activeperl/downloads
2、Microsoft visual_studio_2010_professional:http://pan.baidu.com
因为 C 编译器编译函数时不带参数的类型信息,只包含函数的符号名字。如 void foo( int x ) , C 编译器会将此函数编译成类似 _foo 的符号,C 链接器只要找到了调用函数的符号,就会认为链接成功。而 C++ 编译器为了实现函数重载,会在编译时带上函数的参数信息。如它可以把上面的函
1 #pragma once
2 #ifndef CHAPTER2_H_
3 #define CHAPTER2_H_
4 #include <iostream>
5 using namespace std;
6 &
题目大意就是将前n个数字按顺序写在一起,然后统计这整个由数字组成的串中0-9各出现了几次。代码如下,比较容易理解。
#include <iostream>
#include <string>
#include <cstdio>
#include <cstr
题目大意就是给一个只含有C/H/O/N四个字母的分子式,求分子量。跟着题目意思来进行模拟就好了。重点与难点在于如何处理字母后一位数字以上的数字。写得略显繁杂。
#include <iostream>
#include <string>
#include <cstdio