Rails 使用 carrierwave 上传文件

……崩溃,找了很久的资料,最后找到一份template才解决问题。 carrierwave是一个rails 上传文件的 gem,然而用不来…… 作者在 github 上的文档真的很没有条理性 前言 偶然间看到这篇文章,希望读者也可以多思考一下。 现在框架发展这么迅速,各种api泛滥,我们在寻求解决一个问题的时候,往往会有点急功近利。如果你考虑了底层实现,那你才是真正学到了东西,并能广泛运用它。否则,你顶多只是积累了当前框架或者api的使用经验。换了一个框架你就完全不会了。 但我的确是看完了这篇文章,我也的确去思考了,但是还是不会用!!! 因为网上很多文章和博客都忽略了一个非常重要的地方,下面我会说明。 这里详细介绍一下 carrierwave 的用法,并假设你已经开了上面那篇文章并思考过了。 安装 首先是安装,在gemfile中输入 gem 'carrierwave', '~> 1.0' 并执行 bundle install carrierwave 实际建立的是 model ,但这里便于区分并且生成的类同时也是 uploader ,输入命令…

计蒜客 Coin 附带矩阵加速模板

大概是第5次写矩阵快速幂…… 这道题在DP还是矩阵上都是属于简单范畴……,但没想到用DP就很烦…… 感觉矩阵加速还是挺有必要学一下的…… 顺带学了一下什么叫分数取模用逆元 题意: 让你抛 k 次 硬币,求上面朝上的次数为偶数的概率。 单次正面朝上的概率为 ( \dfrac {q} {p} ) 思路: 令 dp [ n ] [ 0 ] 表示抛了 n 次后,朝上次数为偶数的概率,dp[ n ] [ 1 ] 则表示奇数的概率。 得转移方程 $ dp[n][0] = \dfrac {p-q} {p} \times dp[n-1][0] + \dfrac {q} {p} \times dp[n-1][1] $ $ dp[n][1] = \dfrac…

hihocoder 1513 小Hi的烦恼

别看了……bitset入门题…… bitset就是将32个01位操作整合成一个32位整数,一次位操作。 作为一个位运算的优化方法,可以省去 ( 2^5 )的时间复杂度。 有些大佬 sb 就故意让你 ( O ( n^2 ) )过不了,加个 bitset 优化就可以卡过去了。 不过也可以说是一个很巧妙的操作。 这题是今晚出去撸串的时候听其他三个沙雕吹的一道题,今晚补上。 题意: 给你一群学生每门功课的排名,总共 5 门学科,问你对于每个学生,所有成绩排名都比他高的学生数有多少。 不存在共列一个名次的数据。 思路: 很暴力…… 直接( n^2 ) + bitset 优化就可以卡过 但是不知道为什么,我的循环在 [ 1, n ] 就 T 了,[0, n ) 就 A 了…… #include…

CodeForces 19E Fairy

一道二分图性质的应用 + 树形DP ? 看博客里都说是树形DP,但我觉得应该是树上前缀和更加合适一些 题意: 给你一个图,让你删除一条边,使得剩下的图是二分图。 输出可删边数并顺序输出边的序号。 思路: 首先你必须知道判定二分图的充要条件 —— 不存在奇环。 如果只是让你判定二分图的话,倒是随便搜一遍就可以解决的问题。 但是这里必须让你删掉一条边…… 写不来……感觉不好写,最后无奈去看题解了…… 先整理一下判断思路: 1. 如果不存在奇环,那么原图本来就是一张二分图,每一条边都满足条件 2. 覆盖了所有的奇环,并且不能覆盖偶环的所有边 为什么同时不能覆盖偶环,这个我还真没想到,但是在纸上画一画就是很显然的了,同时覆盖奇环和偶环的边删去后,两个环会变成一个新的环,偶数+奇数 还是奇数。所以不能覆盖偶环。 因此得出如下具体实现,随便生成一棵生成树,用树上前缀和计算出每一条树边覆盖的奇环数和偶环数。 如果奇环数量大于 1 ,那么非树边必定不可能是满足条件的,因为非树边最多只能覆盖一个环,两个及以上就是重边了。因此非树边只有在奇环数量等于 1 的…

《刀剑神域:序列之争》个人简评

刚看完,特想大喊一声:“爽!” 真的,光是100层BOSS战对我来说来回看个10遍还是很过瘾!! 等等,100层BOSS说好不是茅场么?? 不管是那种应对庞然大物,咬牙切齿挥舞着两把剑,还是在刀刃下切割的肉体,这种激烈的战斗场面真的只有 虚拟的 二次元中才会拥有!!当然整部动漫的战斗场面更是在BOSS战中达到了巅峰!! 抛开战斗场面不说,情怀分就可以达到满分,两季TV出现的角色都会在这里以各种形式出现,因为要夺取SAO幸存者的记忆,虚拟现实的玩家锐减,角色的出现显得比较自然,在最后BOSS战中又是还原了各自最具有特色的装备,在情怀上也是上升到了极致。 另外在剧场版再次强调了亚丝娜正宫的位置,狗粮发的也是诚意满满,在洗面奶的那个场景亚丝娜居然没有一点脸红,观众席都是一片哗然…… 话说字幕组对亚丝娜的名字翻译总是在亚丝娜和明日香之间来回随机跳跃是几个意思呀……强迫症表示受不了…… 因为有yuna这样的唱歌辅助角色存在,整部影片在音乐上也是无可挑剔的,顺便说一声影片结束后别急着离开,最后放的音乐也是超好听的!!! 至于剧情方面嘛,我放到最后讲,也因为它只能在及格线吧…

关于使用伪随机数rand的一些思考

本文基于V站上一个大佬的博文,在此之上的一些启发与思考。 在此先对原作者致敬。 前置 基本上的编程语言的rand函数的实现原理是,通过一个算法,得出一个序列,影响序列生成的因素压缩成若干个变量。 换句话说,若作为影响因素的参数不变,rand所得的随机数是固定的。 为了达到我们 “ 随机 ” 的目的,我们将当前时间作为参数,使得序列有一定的随机性。 关于rand函数的实现,wiki上有详细介绍,传送门 错误的使用 假设我们现在的rand函数是完全意义上的随机。我现在要求一个 [ 0,N ) 的随机数。 一般人包括我自己都是这样使用的 srand(time(NULL)); int r = rand()%N; 但实际上存在一个疏忽的地方,因为存在取模,所以 [ 0, RAND_MAX %N ) 被随机到的概率会比 [ RAND_MAX%N , N )多一次。 而我们严格意义上的随机数是均匀分布的,也就是说这是不被我们所允许的。 尝试解决 其实解决方法很简单,…

POJ 3415 Common Substrings

后缀数组 + 单调栈好题 网络赛时的后缀数组可以用这个思路解,但是我并不是很会,今天补上。 题意: 给你两个串,问你长度不小于 k 的重复子串的数量。 思路: 若只是对于一个字符串,问它长度不小于 k 的重复子串数量,那么考虑对height根据 k 分组,然后记录一下就可以了,将 height 去重后,每个 height 的贡献为 ( max ( 0, height – k +1 ) ) 个人猜测,后果不计 但这题是两个字符串,我们可以将两个字符串用一个特殊字符连接,并将后缀通过第一个字符串长度区分开来,对于同一个 height 组中,当前的 height 只能跟另一个 height 组相比求 lcp 。 一个可行的方法是,将组内不同的height都记录下来,再对于每一个当前height,我把它跟另一个height组一一求贡献。但是这个复杂度为 ( O…

HDU 5486 Difference of Clustering

这种题目就是专门针对我的…… 思路简单,所需注意细节多。 题意: 给你每个元素所在集合,问你有多少个,分割,聚集,映射关系。 思路: 首先很直接的思路就是把每个集合的元素都表示出来,进一步的说hash一下,但集合元素多,集合数量也不少,hash有点困难。 考虑将不同集合的所有相同元素用一个元素表示 (这个只要排序去重即可) 那么对于两个存在这个相同元素的集合 A, B,有如下四种讨论情况: 1. A有若干个元素而B没有 —-> 聚集 2. B有若干个元素而A没有 —-> 分割 3. A,B各自存在不同元素是另一个集合不存在的 —–> 不参与讨论 4. 不存在相异的元素 —-> 映射 顺便提示一下集合编号在 int 范围内, 要离散化…… 淦 AC Code #include using namespace std; typedef pair