
ACM
七分好月
这个作者很懒,什么都没留下…
展开
-
HDU 3018 Ant Trip (一笔画问题)
Ant TripProblem DescriptionAnt Country consist of N towns.There are M roads connecting the towns.Ant Tony,together with his friends,wants to go ...原创 2019-02-27 21:47:00 · 207 阅读 · 0 评论 -
线段相交
线段相交——两个步骤:1、快速排斥。 2、跨立实验。快速排斥:先最大限度的将buke不可能相交的情况给排除,例如 线段 : a——b 线段 :c——d 。(线段的表示都是点)如果线段ab两点最大的坐标 x 的值都没有线段cd最小的x值大,这就可以确定 这两条线段肯定不相交。总共有四种情况 线段ab的坐标x,坐标y,线段cd的坐标x坐标y。 if(min(a.y,b.y)...原创 2019-03-13 20:00:20 · 1369 阅读 · 0 评论 -
凸包_Graham算法
凸包问题-求在一群散乱的点中,找出一定的点通过连线可以将所有的点给囊括其中——也就是求能包括这所有点的最大周长。算法步骤:第一步:首先找出y值最小的点P0,因为可以确定的是如果一个点的y值最小那么他一定在凸包上。第二步:以这个点P0未基准,给其他的点进行排序,(按照极值从小到大排序)第三步:将P0,P1,P2三个点纳入凸包里,开始扫描,如果p0-p1 p1-p2的叉积大于0 表示 ...原创 2019-03-13 19:49:38 · 233 阅读 · 0 评论 -
动态规划_背包问题(01背包 完全背包)
背包问题-多种物品 重量不同 价值不同、 你可以取最多重量不超过W的物品,问最大价值为多少?01背包01背包 指的是 有N个物品 每个物品的重量为W[ i ],价值为V[ i],(每个物品只有一个),所有面临这些物品只有两种结果:1、拿这件物品,背包容量减去W[ i ],此时的价值增加V[ i ]。 2、不拿这件物品,背包容量不变,最大价值不变。所以可以得到方程dp[ ...原创 2019-03-20 20:55:47 · 1756 阅读 · 4 评论 -
POJ - 1175 Starry Night
High up in the night sky, the shining stars appear in clusters of various shapes. A cluster is a non-empty group of neighbouring stars, adjacent in horizontal, vertical or diagonal direction. A cluste...原创 2019-03-16 19:33:33 · 302 阅读 · 0 评论 -
树状数组-求逆序对
百度百科:树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。树状数组可以解决线段树能够解...原创 2019-03-04 20:39:56 · 243 阅读 · 0 评论 -
大数--nyoj 45_棋盘覆盖
c语言中大数之间的相乘相除。因为数比较大,故而用数组存储数组存储 从低到高 依次表示 个位、十位、百位、千位。。。。。。 当大数与另一数相乘时模拟乘法的运算规则 int temp = 0; // temp暂存与上一位相乘得到的进位的信息 for(int j=0; j<100; j++) { int m = a[j]*4+temp; // m...原创 2019-02-28 22:01:23 · 126 阅读 · 0 评论 -
NYOJ 42--一笔画问题
一笔画问题题目描述:zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。输入描述:第一行只有一个正整数N(N<=10)表示测试数据的组数。每组测试数据的第一行有两个正整数P,Q(P&...原创 2019-02-28 13:35:14 · 311 阅读 · 0 评论 -
字典树(2)--统计单词出现的次数
首先建立字典树 ,这里采用数组方式建立字典树,在建立字典树的同时统计各个单词前缀 或则 单词的出现次数void insert(char *s) { int root = 0; int len = strlen(s); for(int i = 0 ; i<len; i++) { int id = s[i]-'a'; if(trip[root][id]==0) trip...原创 2019-02-28 13:28:21 · 1134 阅读 · 0 评论 -
最短路-(Floyd、Dijstra,SPFA)
最短路径:floyd 求的是 任意两点之间最短路径的算法。时间复杂度O(N^3); for(int k = 1; k<=m; k++) { for(int i=1; i<=m; i++) { for(int j=1; j<=m; j++) { if(map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[...原创 2019-03-13 20:15:01 · 151 阅读 · 0 评论