首页 > TAG信息列表 > Wh
【深度学习】——深度学习中的梯度计算
梯度下降在【机器学习基础】中已经总结了,而在深度学习中,由于模型更加复杂,梯度的求解难度更大,这里对在深度学习中的梯度计算方法进行回顾和学习。 本节主要是了解深度学习中(或者说是tensorflow中)梯度的计算是怎么做的。 1. 计算图 在学习tensorflow中,我们知道tensorflow都是基KLAVIR
link 题外话:蒟蒻 Feyn 在考场上成功地被这道题卡住了,两行的代码写了差不多两个小时一直憋不出来。另外有个小小的疑问,为啥其它同学最后的处理方法都和题解一毛一样呢,是我的思路过于非主流了还是什么…… 约定:假设 \(A\) 是一个序列,\(a\) 是一个元素,那么 \(A+a\) 是在序列后拼上一Talent Show G
link 01分数规划学习笔记。 假如没有那个什么对体重的限制,那么选择比值最大的那头牛总是没错的,因为其它的牛肯定会影响人家的发挥对吧。但有了这个限制贪心就不对了,你不能说我们按比值从大到小依次选择,一直到什么满足限制了再停止,这很好构造Hack数据。于是就需要用到01分数规划。Hard Life
link 最大密度子图的板子,虽然感觉这种一辈子只见得到一回的题目应该不存在啥模板的说法(没有应用的板子是没有灵魂哒)。 首先那个分数的柿子让人想到了01分数规划,然后套那玩意的板子。在check的过程中遇到经典问题:边有正权,点有负权,选择权值最大的子图。还是那样,把边抽象成点直接跑最Osmosmjerka
link 出题人是卡常狗。靠。 首先题目中的方向是八方向,即包括右上右下左上左下(不然发现样例一过不去),由于需要判断字符串是否相等,想到使用哈希来加速这一过程。但是呢要求的字符串长度又很长,长宽不等导致无法利用循环的性质来砍掉无用部分(事实上我连这部分都没写出来,呜呜呜)。正解是Ronald
link 首先从简单的问题开始思考。假如我们只有两个点,应该如何构造方案呢?显然,当两个点有连边时,我们不需要做任何事情(当然两个点各操作一次也是可以的但没有必要);而两个点没有连边时,只需要选择其中任意一个进行一次操作即可。从这里得出了一个重要的结论,由于操作同一个点两次之后会导Anton and Tree
link 树的直径的好题。 首先可以想到把相邻的颜色相同的点合并起来,于是就得到了一棵任意一条边两端颜色都不相同的新树,这样一来操作的过程就是先找一个点,然后把它变成相反的颜色,于是所有和这个点相邻的点全部被这个点收购了;然后这个大点再向四周扩展,于是就这么一层一层地,于是发现Perfect Groups
link 教会了一个小的结论,假如有 \(A\times B=X^2,B\times C=Y^2\),那么\(A\times C=Z^2(X,Y,Z\in N^*)\)。用唯一分解定理啥的都可以证。 放到这道题中就是说几个元素可以暴力合并而不需要考虑集合内其他元素的感受,也就是说一个元素只要可以和集合内某个元素玩得来那么它就可以成为Kralj
link 一个有趣且古老的贪心题,有些思维难度。 首先把精灵选择矮人的过程替换为矮人选择精灵的过程,每个矮人有许多精灵可以选择,他只能选择其中一个,剩下的精灵可以推给下一个矮人,这样一来就变成了什么样的策略使得矮人输的次数更大。对于一个矮人,假如存在比它强的精灵那么一定会选,因Vještica
link 给定一些串,每个串可以进行重组,最小化这些串最后组成的Trie的结点数。 数据范围指向状压DP。很明显最后的答案和每个串一开始的字符顺序无关,于是可以记录每个串中每个字符的数量。然后发现在两个串合并的时候,为了使得树上结点最少,考虑贪心地把相同的字符排到前面去,于是最后的Prokletnik
link 一道很好的线段树题目。 题外话:今天上午,全宇宙内最弱的辣鸡 Feyn 再一次和正解擦肩而过,下午这个蒟蒻看题解甚至没有看懂题解的写法(参考题解链接,我实在没看出来它的两棵线段树咋维护的,为啥觉得它只写了一棵呢,果然我还是太弱了),于是这个连题解都看不懂的菜鸡花了一下午时间研究Prosti
link 蒟蒻只会打表。 由于题目中 \(K\) 和 \(M\) 都很小,那么我们可以考虑找出一个长度为 \(K\) 的区间满足其中刚好有 \(L\) 个质数,保存下来到时候输出即可。给出打表程序的代码,代码中有注释: #include<bits/stdc++.h> #define feyn const int N=10001000; const int S=1e7-200; c【模板】子序列自动机
link 其实感觉这玩意不应该叫什么自动机,这似乎就是一个个人yy出来的东西。。。 给定一个文本串和许多模式串,询问每个模式串是不是文本串的子序列。如果是询问字串的话直接上kmp即可,但子序列呢。考虑贪心,寻找文本中第一个和模式串第一个元素相同的元素位置,选择它相较于选择其它值相方格取数问题
link 由于相邻的两个数不能同时选择,于是考虑把相邻的两个元素连边。又由于整张图很明显可以进行黑白染色,于是连边之后的图会形成一张二分图。于是寻找最大的方案就变成了割掉最小的方案,跑最大流最小割即可。 #include<bits/stdc++.h> //#define feyn #define int long long constEducational Codeforces Round 132 (Rated for Div. 2)(补题中)
加粗:赛时AC 普通:赛后AC A. Three Doors 水题,但我一开始没看懂题意,就随便猜了个题意。反正就是拿着钥匙开一扇门,门后有别的钥匙,问你能不能全打开。 int main() { read(t); while(t--) { int x; read(x); memset(buc,0,sizeof(buc));ENDOR
link \(O(N^2)\) 的做法比较简单,枚举两个小蜥蜴的相遇时间然后就可以把一只蜥蜴的路程划分成很多阶段,然后每个阶段的颜色可求,累计答案即可。 考虑到数据范围可以猜想需要使用 \(O(NK)\) 的算法,结合意义可以猜出这个算法应该是统计每只蜥蜴路程上每种颜色的路程长度然后累加输出,毕DRŽAVA
link 总感觉COCI的题面读不懂。题意是说给定一些平面内的点,点有点权,两个点连边的边权是两个点的集合距离。请求出一棵生成树,满足树内存在点权和模K为0的子集,最小化最大边的边权。 有一个很巧妙的结论,随意选出K个点一定能找出子集符合条件。于是得出结论树内结点不会超过K个,所以每逃跑
link 并不复杂的题目,读题的时候以为是无向边从而挂了三个点。这道题给我的启事就是关于拆点部分,如果题目中给定的限定条件是关于点的通过次数的,可以把点拆开成为入点和出点,然后在两个点之间连边,这样就可以使得通过次数得到保证。之前蜥蜴那道题其实也是用的这种思路。 #include<bi[JSOI2004] 平衡点 / 吊打XXX
link 模拟退火学习笔记。 模拟退火约等于醉汉走路,只不过聪明的醉汉会懂得向更优的方向走。这个算法的本质就是随机找一个解,如果更优则更新当前答案,如果稍劣则给一定概率更新(这个概率和当前温度以及两个答案的差值有关),一直到温度降到某个临界点之后就认为当前的答案就是答案,输出即[SCOI2005]骑士精神
link 和八数码难题是一样的,反正都是把一些棋子挪来挪去。这道题对估价函数有更高的依赖性,不开会只有20分(8个TLE),开了就能跑到100ms。好玄学啊。 #include<bits/stdc++.h> //#define feyn using namespace std; inline void read(int &wh){ wh=0;int f=1;char w=getchar(); while([SCOI2005]栅栏
link 搜索题。 我真的不想写搜索啊,这玩意复杂度没法证,能拿多少分得看数据和评测机,而且没有固定思路,就像某些埋头堆硬件的厂家,写起来只有那么难受了。 关于这道题。有一个显而易见的贪心,最后锯出来的木条一定是最小的那些,因为长木条可以锯出来,短木条一定可以,转换方案之后肯定是不劣最长上升子序列
link 挺水一题。 由于不强制在线,可以把所有操作读入之后,把最后的数组处理出来了再考虑答案(主要是平衡树动态维护LIS一时没想到怎么做)。显然有结论,第i次的答案可以看成是最后数组剔除掉所有大于i的数剩下的序列的LIS,而所有大于i的数是不会被小于等于i的数吸纳的,所以第i次的答案相当书架
link 平衡树的一点小变通。 要求支持一些操作:询问序列第k个元素是什么,询问元素k在序列中的位置,把一个元素放到序列最前面或最后面,交换两个元素(\(insert\) 操作说白了就是交换这个元素和它前面或后面的元素交换)。 第一个和最后一个还好,其它操作有点麻烦。问题就在于要把节点的点值埃及分数
link 搜索中迭代加深的技巧。迭代加深是解决一类答案深度不大、但搜索树可能很深(甚至无限深)、用广搜还不是很好解决的问题。方法是枚举答案的深度,通过限制搜索树深度的方法达到解决问题的目的。 比如这道题。分解得到的分数数量可能非常多,但答案的数量不会太大,就可以通过迭代加深CF702E
link CF的题总是很良心的。比如这道题完全够不到紫题的难度,充其量一个绿题嘛。就是一个倍增,同时维护元素和和元素最小值的倍增数组,一次询问就可以了。 注意要开long long,而且CF上要用 printf("%I64d"); 输出long long。 代码异常简单。 #include<bits/stdc++.h> //#define zczc #d