- 博客(16)
- 收藏
- 关注
原创 线段树模板
单点更新#include"cstdio"#include"iostream"#include"cstring"#include"algorithm"using namespace std;#define MAXN 50005int tree[(MAXN<<2)+10];void build(int node,int left,int right) //建树{ if(le
2016-08-12 09:56:32
227
原创 POJ1014 多重背包(二进制拆分)
题目链接 题目大意:给出6个数,分别代表价值为1~6的6种物品的数量,求能否在价值相同的情况下平分这些物品。 思路:多重背包。一开始拆成01背包来做,写了三层循环,很显然结果TLE了。后来上网看了一下题解,大致意思是把每一种物品的数量拆成1,2,4,8,……这样的2的n次方数,比如将12拆成1,2,4,5四个数,这样可以用这些数字来拼凑成任意一个所需要背包的数。#include"cstdio"
2016-07-27 10:35:00
605
原创 01背包
状态转移方程:dp[i][j] = max(dp[i-1][j], dp[i-1][j-c[i]] + w[i]) (正背) 可简化为一维方程:dp[i] = max(dp[i], dp[i-c[i]] + w[i]) (倒背) 专题链接:01背包
2016-07-18 20:53:16
1317
原创 极角排序 POJ1696
VJ题目连接题目大意一种奇怪的虫子不能右转且走过路线之间不能有交点,吃植物才能存活,给出植物的坐标,求虫子要怎样走才能活得最久(吃的植物越多活越久)输入:样例数,n组样例,每组给出一个n,然后n行每行给出3个数,分别是植物编号、植物x坐标、植物y坐标输出:能吃的最大植物数目,并给出路线解体思路因为虫子只能左转且路线不能有交点,很容易想到让虫子逆时针螺旋地去吃植物,由外到内,可以将所有植物吃完。因为逆
2016-05-18 11:43:00
672
原创 凸包模版 HDU1392 Surround the Trees
题目链接题目大意给出n颗树的坐标,要用一根绳子将所有的树围起来,求绳子的最短长度。解题思路求这n个坐标能形成的最大凸包。需要特判n为1时绳子长度为0以及n为2时绳子长度为2树距离。剩下的套凸包模版即可。AC代码#include <iostream>#include <cmath>#include <cstdio>#include <cstring>#define eps 0.00000001
2016-05-09 11:26:51
687
原创 平行四边形数
C - 平行四边形数 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uFZU 2231 Description 在一个平面内给定n个点,任意三个点不在同一条直线上,用这些点可以构成多少个平行四边形?一个点可以同时属于多个平行四边形。Input 多组数据(<=10),处理到EOF。每组数据第
2016-05-08 22:59:18
956
原创 HDU2087 剪花布条
题目链接水题,给出A字符串和B字符串,求A字符串能分出几个B字符串。特意写篇博客是因为发现了特殊姿势,用strstr函数返回一个指针,它指向字符串A首次出现于字符串B中的位置,如果没有找到,返回NULL。#include"bits/stdc++.h"using namespace std;int main(){ int len,c; char *p; char a[100
2016-05-08 22:32:23
254
原创 矩阵快速幂 HDU1575
题目连接真·模版水题,套模版即过#include "bits/stdc++.h"using namespace std;typedef long long LL;#define mod 9973struct MATRIX{ LL m[15][15];};MATRIX IN;MATRIX E;LL n,k;MATRIX mul(MATRIX a, MATRIX b) //
2016-05-04 14:44:18
281
原创 向量及其运算
结构体定义//向量结构体struct point{ double x; double y;}p1,p2;//向量加法point operator+(point p1,point p2);{ point pnew; pnew.x=p1.x+p2.x; pnew.y=p1.y+p2.y; return pnew;}//向量减法point
2015-10-03 15:11:58
509
原创 欧拉函数(例:HDU1286 找新朋友)
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
2015-09-06 20:27:17
480
原创 克鲁斯卡尔算法——求加权连通图的最小生成树的kruskal套路
//核心,边权由小到大依次判断增加(此处m为边的数量)for(i=1;i<=m;i++) sum+=join(e[i]);
2015-08-13 00:02:05
1348
原创 鲁棒的程序 之 MFC有理数数据输入控制
本文仅针对MFC环境下的C++语言编写的基于对话框的程序的EditControl控件的有限位数的十进制的有理数的小数形式的数据的输入控制的鲁棒性进行讨论,如果没有特殊需求,请直接修改EditControl的Number属性。
2015-08-09 11:07:41
711
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人