摘要: 一: 着色器 着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。 在最简配置下,至少都得有两个着色器:一个叫顶点着色器(vertex shader),它将作用于每个顶点上;另一个叫片段着色器(fragment shad 阅读全文
posted @ 2019-08-11 16:18 Garrett_Wale 阅读(7951) 评论(0) 推荐(1) 编辑
摘要: #你好,三角形 一: 关于坐标的问题 标准化设备坐标:输入的顶点数据就应该在标准化设备坐标范围里面即:x,y,z的值都在(-1-1)之间。在这个区间之外的坐标都会被丢弃。 1.1一旦顶点数据传入顶点着色器中,那它们一定全都是标准化设备坐标了。 1.2标准化设备坐标符合右手定则,即原点在屏幕中心。 屏 阅读全文
posted @ 2019-08-11 14:58 Garrett_Wale 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 病毒侵袭持续中 "HDOJ 3065" 第一个需要注意的是树节点的个数也就是tree的第一维需要的空间是多少:模板串的个数 最长模板串的长度 一开始我的答案总时WA,原因是我的方法一开始不是这样做的,我是在查找文本串的时候,结束的时候再来统计每个模板串出现的次数,但是这样似乎不行 这道题还有一个坑就 阅读全文
posted @ 2019-08-10 21:27 Garrett_Wale 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 病毒侵袭 "HDOJ 2896" 主要使用AC自动机解决,其次在query函数中改变一下,用来记录每个模板串出现的次数,还有insert函数中记录模板串的编号 需要注意最好使用结构体,而且不能一次性使用memset否则会超时 上次没有AC出现了output limit exceed问题,后来发现是我 阅读全文
posted @ 2019-08-10 19:35 Garrett_Wale 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Keywords Search "HDOJ 2222" 本文是AC自动机的模板题,主要是利用自动机求有多少个模板出现在文本串中 由于有多组输入,所以每组开始的时候需要正确的初始化,为了不出错 由于题目的要求是有多少字符串出现过,而不是出现过多少次,所以出现过的模板串就不能再计数了,所欲需要置 1. 阅读全文
posted @ 2019-08-10 10:40 Garrett_Wale 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Blue Jeans "HDOJ 3080" 本题使用的是KMP算法加暴力解决 首先枚举第一个字符串的所有子串,复杂度为O(60 60),随后再将每个子串和所有剩下的m 1个字符串比较,看是否存在这个子串 若所有的字符串都有该子串,则看是否是最长的,如果是等长的再看是否是字典序最小的。 本题我wa了 阅读全文
posted @ 2019-08-09 17:41 Garrett_Wale 阅读(484) 评论(0) 推荐(0) 编辑
摘要: Seek the Name, Seek the Fame "POJ 2752" 本题使用的算法还是KMP 最主要的片段就是前缀数组pi的理解,这里要求解的纸盒pi[n 1]有关,但是还是需要使用一个循环来依次找到前面符合的前缀(所谓符合就是可以保持既是前缀也是s的后缀的子串长度)。 include 阅读全文
posted @ 2019-08-09 12:11 Garrett_Wale 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Power String "POJ 2406" 字符串压缩模板题,但是是求有多少个这样最短的子串可以组成s。 include include include include include using namespace std; const int N=10000001; int pi[N]; v 阅读全文
posted @ 2019-08-09 11:49 Garrett_Wale 阅读(131) 评论(0) 推荐(0) 编辑
摘要: Period "HDOJ 1358" 这题还是属于KMP算法的应用,属于字符串压缩问题。也就是在一个字符串s中寻找一个前缀,使得s可以被一份或者多份前缀子串t拷贝连接,也就是串接。 include include include include include using namespace std 阅读全文
posted @ 2019-08-09 11:12 Garrett_Wale 阅读(149) 评论(0) 推荐(0) 编辑
摘要: Cyclic Nacklace "HDOJ 3746" 本题还是使用KMP算法,需要使用到前缀数组 利用前缀数组计算最小循环节:即t=n pi[n 1]. 最后输出还需要的珠子,当然还有判断什么时候输出为0. include include include include using namespa 阅读全文
posted @ 2019-08-09 10:41 Garrett_Wale 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 剪花布条 "HDOJ 2087" 本题和 "hdoj 1686" 相似,唯一不同的是这里的子串一定要是单独的。所以在确定有多少个子串时不能用前面的方法。而是在循环时,只要找到一个子串,i就不是++,而是+=子串的长度。 include include include include using na 阅读全文
posted @ 2019-08-09 10:12 Garrett_Wale 阅读(99) 评论(0) 推荐(0) 编辑
摘要: Oulipo "HDOJ 1686" 本题的思路就是KMP,和HDOJ 1711思路一样,不再赘述详情可以看链接: "1711题解" include include include include include using namespace std; string a,b; int pi[101 阅读全文
posted @ 2019-08-09 09:54 Garrett_Wale 阅读(116) 评论(0) 推荐(0) 编辑
摘要: Number Sequence "HDOJ 1711" 1.这里使用的算法是KMP算法,pi数组就是前缀数组。 2.代码中使用到了一个技巧就是用c数组看成是复合字符串,里面加一个特殊整数位 1000006,因为它永远不会出现在数组中。 3.额外需要注意的就是,需要加快速输入输出语句,因为涉及到的数据 阅读全文
posted @ 2019-08-09 09:37 Garrett_Wale 阅读(138) 评论(0) 推荐(0) 编辑
摘要: permutation 1 "HDOJ 6628" 这题使用的暴力深搜,在dfs里面直接从最小的差异开始枚举 注意这里的pre记录前一个数,并且最后答案需要减去排列中最小的数再加一 这里有一个技巧关于求第k小的问题,就是在dfs里面只要找到满足的长度为n的排列,k就减一,这样当k为0时的排列就是字典 阅读全文
posted @ 2019-08-08 17:37 Garrett_Wale 阅读(173) 评论(0) 推荐(0) 编辑
摘要: K th Closest Distance "HDOJ 6621" 本题可以使用线段树解决,结点存本结点对应的所有元素,并按照从小打到排序 最后使用二分法求解答案。因为题目中有绝对值,所以需要使用两次查找,再相减和k比较 // include include include include incl 阅读全文
posted @ 2019-08-08 09:21 Garrett_Wale 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Cow Contest "POJ 3660" 1.本题考察的是最短路,用的算法是Floyd算法 2.如果一个结点和剩余的n 1个结点都有关系,那么可以确定其排名 3.需要注意的是,判断是否有关系时,反向关系也要考虑 阅读全文
posted @ 2019-08-07 20:08 Garrett_Wale 阅读(254) 评论(0) 推荐(0) 编辑
摘要: MPI Maelstrom "POJ 1502" 这题是求最短路,但是因为一开始看错题目,导致我去使用prime算法求最小生成树 题意是指一台机器发出信息后,还可以向其他的机器发送信息,所以不能使用prime算法。尽管两者区别很小 include include include include in 阅读全文
posted @ 2019-08-07 19:40 Garrett_Wale 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Doing Homework "HDOJ 1074" 1.本题主要用的是状态压缩的方法,将每种状态用二进制压缩表示 2.状态转移方程:dp[i|(1 include include include include using namespace std; const int INF=0x3f3f3f 阅读全文
posted @ 2019-08-07 16:44 Garrett_Wale 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Monkey and Banana "HDOJ 1069" 这里实际是嵌套矩形问题的变式,也就是求不固定起点的最长路径 动态转移方程为:dp[i]=max(dp[j]+block[i].h|(i,j)∈map),这里的dp[i]表示从i块出发的可以构建的最大的高度。 首先需要构建出图map,表示一块 阅读全文
posted @ 2019-08-07 11:07 Garrett_Wale 阅读(215) 评论(0) 推荐(0) 编辑
摘要: Ignatius and the Princess IV "hdoj 1029" 这里主要是先排序,因为要找出现了一半以上的数字,所以出现的数字一定在中间 方法一: include include include include include using namespace std; int n; 阅读全文
posted @ 2019-08-07 09:52 Garrett_Wale 阅读(132) 评论(0) 推荐(0) 编辑