GPU OpenCL Reduction操作与group同步

原文地址:https://www.cnblogs.com/xudong-bupt/p/3586518.html Reduction操作:规约操作就是由多个数生成一个数,如求最大值、最小值、向量点积、求和等操作,都属于这一类操作。 有大量数据的情况下,使用GPU进行任务并行与数据并行,可以收到可好的效果。 group同步:OpenCL只提供了工作组内的各线程之间的同步机制,并没有提供所有线程的...
分类: 其他 发布时间: 08-04 23:18 阅读次数: 0

OpenCL 学习step by step -数组求和(reduction)

原文地址:https://www.cnblogs.com/mikewolf2002/archive/2012/11/24/2785622.html 我们学习一下如何用opencl有效实现数组求和,也就是通常所说的reduction问题。      在程序中,我们设置workgroup size为256,kernel的输入、输出缓冲参数都用uint4的格式,这样我们原始求和的数组大小为256*4...
分类: 其他 发布时间: 08-04 23:18 阅读次数: 0

HDU6315(线段树维护区间最小值和区间求和)

题意 给定一个初始数组b和一个初始值全部为0的数组a,每次操作可以在给定的区间(l,r)内让a[i](l=<i<=r)加一,或者查询区间区间(l,r)中a[i]/b[i](l=<i<=r)(向下取整取整)的和。 题解 a[i]/b[i]向下取整,那么a[i]每次加1,a[i]加b[i]次就对总和的贡献加1。那么我们维护一个b数组最小值,每次更新区间最小值tree[rt...
分类: 其他 发布时间: 08-04 23:17 阅读次数: 0

POJ3254(状压DP)

题意 给你一个n*m的矩阵(农田),1表示可以种植,0表示不能种植。且上下和左右每个单元不能相邻。问有多少种种植方法(可以不种植)。 样例 Sample Input 2 3 1 1 1 0 1 0 Sample Output 9 1 2 3 0 4 0 种植一棵树(1,2,3,4)4种,两棵(13,14,34)3种,三棵(134)1种,零棵树1种,sum = 4+3+1+1 ...
分类: 其他 发布时间: 08-04 23:17 阅读次数: 0

POJ1185(状压DP)

题意 中文题。 题解 首先考虑每一行(横向)的影响,每个战队战火波及范围是两格,所以保证(state & state<<1)和(state & state<<2)都要为0。 并且每行中最多的状态不是1<<10,正因为战火会影响两格,所以一行的状态最多不超过60。所以可以预处理出每行可行的状态。 再考虑列的情况,第i行只会影响到第i-1行...
分类: 其他 发布时间: 08-04 23:17 阅读次数: 0

HDU6278(主席树+二分)

题意 区间第k大 代码 #include<cstdio> #include<algorithm> #include<string.h> #include <string.h> #include <math.h> #include <vector> using namespace std; typedef long l...
分类: 其他 发布时间: 08-04 23:17 阅读次数: 0

HDU6319 2018多校第三场(单调队列)

题意 给你n个数a[N],求每个m长区间[i,i+m-1](1<=i<=n-m+1)里面的最大值maxval[i]和更新最大值的次数cnt[i](区间从左至右严格大于maxval[i]的次数)。 题解 利用单调队列可以很好的求出每个区间的maxval,但如果正向跑不好得出cnt,反相跑的话发现每次队列中的值就是cnt。因为维护的是一个单调递减队列,每一次加入的值小于队尾的值就直接...
分类: 其他 发布时间: 08-04 23:16 阅读次数: 0

POJ2823(单调队列,二分出队列)

题意 给你n个数和一个区间的长度k,求从前往后每个[i,i+k-1] (1<=i<=n-k+1)区间的最大值和最小值。 题解 用单调队列搞一搞,然后。。。然后就超时了,学习了一下可以二分出队列,就去弄了一下二分(其实k不大的话二分也没啥用啊)。然后。。。然后就超时了。 好吧为什么G++就是会超时呢?用C++就过了。 代码 #include<cstdio> #i...
分类: 其他 发布时间: 08-04 23:16 阅读次数: 0

HDU6336 2018多校第四场(规律,矩阵前缀和)

题意 给你一个由长度为L的数组A构造的无限大矩阵M,矩阵中的数构造方式如下 int cursor = 0; for (int i = 0; ; ++i) { for (int j = 0; j <= i; ++j) { M[j][i - j] = A[cursor]; cursor = (cursor + 1) % L; } } 输入...
分类: 其他 发布时间: 08-04 23:16 阅读次数: 0

HDU6333 2018多校第四场(莫队+组合数)

题意 T组样例,给两个数n,m,求下式。 题解 先观察一手杨辉三角找找规律 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 可以得到 f(n,m+1)=f(n,m)+C(n,m+1) f(n+1,m)=2f(n,m)-C(n,m). 抽象的看由(n,m)可以得到(n-1,m)(n+1,m)(n,m-1)(n,m+1) 所以可以用莫队来解决。 #includ...
分类: 其他 发布时间: 08-04 23:16 阅读次数: 0

BZOJ2038 小Z的袜子(莫队)

题意 BZOJ2038 题解 询问区间(L, R)选两只袜子颜色相同的概率 ans = C(a,2) + C(b,2) + C(c,2) + ... / C(R-L+1, 2) 找规律可得 (a^2 + b^2 + c^2  - a - b - c) / (R - L + 1)(R - L) 即(a^2 + b^2 + c^2 - (R - L + 1) ) / (R - L + 1)...
分类: 其他 发布时间: 08-04 23:15 阅读次数: 0

阿里、百度、搜狐等公司社招面试记录与总结

这个跳槽季大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面经, 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己,做到有的放矢。 一、面试遇到的问题         1.百度   百度最近真是炙手可热,贴吧事件刚结束,医疗竞价排名又闹得沸沸扬扬,一些论坛上连带程序员都开始招黑了,友谊的小船可是说翻就翻。 说...
分类: 其他 发布时间: 08-04 23:15 阅读次数: 0

总结记录一下我的第一次社招面试经历

已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我的第一次社招面试经历吧。2015年12月1日办理了离职手续,离开了万通中心,也算是和我的第一个东家正式说了再见,其实还是很喜欢国贸的,这是个美妙的地方,容纳着很多金融界人才们的梦想,每每晚上走到这里你会感叹帝都的夜景好美,只可惜这里的多数人都顾不上欣赏这里的风景,每个人都生活在压力下,成为了金钱的奴隶,但这并不是什么坏事,因为他们上...
分类: 其他 发布时间: 08-04 23:14 阅读次数: 0

数据结构--树--线索二叉树(中序,前序,后序)

https://blog.csdn.net/DouBoomFly/article/details/71572601 线索二叉树 在遍历二叉树的时候,会有许多空指针域,这些空间不存储任何事物,白白浪费了内存的资源。 那么在做遍历的时候,提前记录下每个结点的前驱和后继,这样就更加节约了时间。                  [ lchild ] [ LTag ] [ data ] [ RTag ...
分类: 其他 发布时间: 08-04 23:14 阅读次数: 0

java 求解字符串中第一次出现的字符的位置

题目: 在字符串中找出第一个只出现一次的字符的位置,如输入“abaccdeff”,则输出“2”。 1 解法:以空间换时间,借助Hashmap实现 import java.util.HashMap; import java.util.Map; import java.util.Set; public class Solution { public int FirstNotRepe...
分类: 其他 发布时间: 08-04 23:13 阅读次数: 0

查找一个字符串中第一个只出现两次的字符。要求 时o(n) 空o(1)

思路   既然空间复杂度要求O(1),那么我们只能建立常数倍的空间。所以又因为是字符,所以可以使用一个大小为256的数组。用它来当哈希表。所以我的解法中申请了一个pair的键值对的数组。first保存的是出现的次数,second保存的是出现的该字符第一次出现在字符串中的下标。所以我们可以遍历一边字符串,我们就可以得到所以字符出现的次数和该字符第一次出现的下标。再遍历一次数组,定义一个min变量...
分类: 其他 发布时间: 08-04 23:13 阅读次数: 0

给定一个字符串,查找该字符串中第一个重复出现的字符索引。要求:时间复杂度为O(n)。

分析:如果没有给出复杂度的要求,那么本题就比较好解决了,通过两层for循环就可以得出,时间复杂度也就是O(n^2)。既然题目规定了时间复杂度,那就要通过牺牲空间来换时间的方法了。 实现 1.通过增加两个大小为256的数组(ASCII表的大小)num和indexs,其中第一个数组num存储字符串中每个字符出现的次数,数组index中存储对应字符在字符串中第一次出现的索引。 import ja...
分类: 其他 发布时间: 08-04 23:13 阅读次数: 0

Java获取字符串中某个字符串第一次出现的位置(索引)

今天工作,需要将一串信息,包括用户名、密码、邮箱的字符串,将用户名和邮箱截取出来。     原字符串为:yulv # 123456 # [email protected]     此处用Matcher和Pattern类会非常简单,这两个类是利用正则表达式匹配查找的相关类,详细可以参见java Pattern和Matcher详解     我的代码如下: public class MatcherTe...
分类: 其他 发布时间: 08-04 23:13 阅读次数: 0

MyEclipse10配置PyDev进行Python开发

MyEclipse10配置PyDev进行Python开发   1、下载PyDev 2.7.1  链接如下:    http://jaist.dl.sourceforge.net/project/pydev/pydev/PyDev%202.7.1/PyDev%202.7.1.zip  2、下载/python-2.7.3  链接如下: http://www.python.org/ftp/python...
分类: 其他 发布时间: 08-04 23:12 阅读次数: 0

MyEclipse10中配置开发Python所需要的PyDev 绝对靠谱 不忽悠!

https://sourceforge.net/projects/pydev/files/ 在NLP(自然语言处理)这个领域中,Python具有良好的声誉,于是也想学习一下。首先第一步就是需要在计算机上配置Python环境。由于Python自带的编辑器太简单,使用起来不顺手,于是就考虑在相对熟悉的MyEclipse中配置PyDev来进行Python开发。 在网上搜了一下配置方法,发现介绍基于M...
分类: 其他 发布时间: 08-04 23:12 阅读次数: 0
今日推荐