摘要:
题意:建光纤的时候,拉一条最长的线 思路:最大生成树 解决问题的代码: 阅读全文
posted @ 2018-08-02 16:30
徐小晋
阅读(111)
评论(0)
推荐(0)
摘要:
题意:给全村建光纤,求花费最小 思路:最小生成树,树相对于图来说就是没有环 解决问题的代码: 阅读全文
posted @ 2018-08-02 16:25
徐小晋
阅读(103)
评论(0)
推荐(0)
摘要:
题意:有n个空地,有m条双向大路,w条时光隧道单向路。问能否回到过去? 思路:判断是否有负环存在,如果有负环存在那么就可以一直小就可以回到过去了 解决问题的代码: 其中比较神奇的是存图技巧 阅读全文
posted @ 2018-08-02 16:18
徐小晋
阅读(151)
评论(0)
推荐(0)
摘要:
题意:奶牛拍一系列电影,n头牛拍m部电影,同一部电影种的搭档们距离为1,求最小距离? 思路:Floyd 图 最短路径 for (int i = 0; i <= n; i++) { for (int j = 0; j <= n; j++) f[i][j] = INF; f[i][i] = 0; } f 阅读全文
posted @ 2018-08-02 16:11
徐小晋
阅读(219)
评论(0)
推荐(0)
摘要:
题意:形似4n+1的被称作H-素数,两个H-素数相乘得到H-合成数。求h范围内的H-合成数个数 思路: h-素数 h-合成数 for(int i=5;i<maxn;i+=4) for(int i=5;i<maxn;i+=4) { if(h_prime[i]) continue; for(int j= 阅读全文
posted @ 2018-08-02 16:03
徐小晋
阅读(158)
评论(0)
推荐(0)
摘要:
题意:1.p不是素数 2.(a^p)%p=a 输出yes 不满足输出no 思路: bool is_prime(int n) { for(int i=2;i*i<=n;i++) if(n%i==0) return false; return n!=1;} 2.(a^p)%p快速幂 注意大数快速幂要传入 阅读全文
posted @ 2018-08-02 15:55
徐小晋
阅读(180)
评论(0)
推荐(0)
摘要:
题意:给出A1,…,AH,B1,…,BH以及M,求(A1^B1+A2^B2+ … +AH^BH)mod M. 思路:快速幂 实例 3^11 11=2^0+2^1+2^3 =》 3^1*3^2*3^8=3^11 实现代码: int solve(int a,int b) { int ans=1; whi 阅读全文
posted @ 2018-08-02 15:50
徐小晋
阅读(367)
评论(0)
推荐(0)
摘要:
题意:给一个字符串,构成回文(空也是回文) 其中增删都需要代价。问:代价最少? 思路:把字符串s变空 dp[i][j]表示变成回文的最小代价 for(i=m-1;i>=0;--i) for(j=i+1;i<w;j++)lsdjfl dp[i][j]=min(dp[i+1][j]+cost[s[i]- 阅读全文
posted @ 2018-08-02 15:11
徐小晋
阅读(139)
评论(0)
推荐(0)
摘要:
题意:硬币分别有 A1.....An种,每种各有C1......Cn个,问组成小于m的有多少种 思路:多重背包问题 dp[i][j]表示用前i种硬币组成j最多剩下多少个 dp=-1的表示凑不齐 dp[0][0]=0; for(int i=0;i<n;i++) for(int j=0;j<=m;j++ 阅读全文
posted @ 2018-08-02 14:08
徐小晋
阅读(195)
评论(0)
推荐(0)
摘要:
题意:奶牛产奶,农夫有m个时间段可以挤奶,在工作时间 f t 内产奶量为m,每次挤完奶后,奶牛需要休息R。问:怎么安排使得产奶量最大? 思路:区间dp dp[i]表示第i个时段 解决问题的代码: 阅读全文
posted @ 2018-08-02 13:53
徐小晋
阅读(386)
评论(0)
推荐(0)
摘要:
题意:有树1 树2 会掉苹果,奶牛去捡,只能移动w次,开始的时候在树1 问最多可以捡多少个苹果? 思路: dp[i][j]表示i分钟移动j次捡到苹果的最大值 实例分析 0,1 1,2...说明 偶数在树1 奇数在树2 for (int i = 1; i <= n; i++) { scanf("%d" 阅读全文
posted @ 2018-08-02 13:43
徐小晋
阅读(190)
评论(0)
推荐(0)
摘要:
题意:一个n可以拆成 2的幂的和有多少种 思路:先看实例 1 1 2 1+1 2 3 1+1+1 1+2 4 1+1+1+1 1+1+2 2+2 4 5 1+1+1+1+1 1+ 1+1+2 1+2+2 1+4 解决问题的代码: 阅读全文
posted @ 2018-08-02 13:35
徐小晋
阅读(117)
评论(0)
推荐(0)
摘要:
题意:给一个三角形形状的数字,从上到下,要求数字和最大 思路 :dp 对上面思路的解释: 对于每个位置都是由上面一个位置加当前位置的最大值组成,所以有了上面的递推公式 解决问题的代码: 阅读全文
posted @ 2018-08-02 13:29
徐小晋
阅读(134)
评论(0)
推荐(0)
摘要:
题意:n台电脑,当两台之间的距离小于d的时候可以连接。 题目会进行操作“修复”还有“查询是否已经连接”。只要在查询的时候输出YES或者ON 思路: 解决问题的代码: 阅读全文
posted @ 2018-08-02 13:20
徐小晋
阅读(132)
评论(0)
推荐(0)
摘要:
题意:每头奶牛需要涂抹防晒霜,其中有效的范围 min~max ,现在有L种防晒霜,每种防晒霜的指数为 f 瓶数为 l,问多少只奶牛可以涂上合适的防晒霜?思路: 优先队列+贪心 思路解释:min<f时表示可以访问, 取max与f进行比较,因为先前对f进行排序,所以数小的在前面,这样可以做到不浪费 解决 阅读全文
posted @ 2018-08-02 13:10
徐小晋
阅读(115)
评论(0)
推荐(0)
摘要:
题意:给你两个数,一个n表示这个三角有多少层,一个sum表示总和 思路: 类似杨辉三角 1 1 1 1 2 1 第n行的第k个数 为 n!/k!(n-k)! 解决问题的代码: 阅读全文
posted @ 2018-08-02 12:49
徐小晋
阅读(136)
评论(0)
推荐(0)
摘要:
题意: 给一个已经排序号的数字,从中间切一刀,成两个数,要求这两个数的差最小 思路:暴力比较差最小值 if (a[mid]) { int x = a[0]; int y = a[mid]; for (int i = 1; i < mid; i++) x = x * 10 + a[i]; for (i 阅读全文
posted @ 2018-08-02 12:41
徐小晋
阅读(146)
评论(0)
推荐(0)
摘要:
广度优化搜索算法的本质:要求每个状态不能重复,这就需要我们:第一次先走一步可以到达的状态,如果还没有找到答案,就需要我们走到两步可以到达的状态。依次下去 核心算法:队列 基本步骤: 1.将最初状态添加到队列 2.从对列的前端不断取出状态 3.队列后端添加该状态,可以转移且并没有被访问过的状态 4.最 阅读全文
posted @ 2018-08-02 12:29
徐小晋
阅读(265)
评论(0)
推荐(0)
摘要:
题意:火星撞地球,你要跑到一个永远安全的地方,求最短时间 思路:bfs+预处理 这题的数据量比较大,所以需要进行预处理 for (int j = 0; j<5; j++) { //预处理 int dx = x + dir[j][0], dy = y + dir[j][1]; if (dx < 0 | 阅读全文
posted @ 2018-08-02 12:23
徐小晋
阅读(213)
评论(0)
推荐(0)
摘要:
题意:给你一个三维地图,然后让你走出去,找到最短路径。 思路:bfs struct node{ int x, y, z; int t;}; 代码上的小技巧:三维地图需要你去遍历的时候需要走六个方向: 解决问题的代码: 阅读全文
posted @ 2018-08-02 12:14
徐小晋
阅读(1030)
评论(0)
推荐(0)
摘要:
深度优化搜索算法的本质:就是从一状态不断转移,如果无法转移了就需要返回上一个状态,知道找到解为止。 其核心:递归函数 基本模型: 阅读全文
posted @ 2018-08-02 12:00
徐小晋
阅读(550)
评论(0)
推荐(0)
摘要:
题意:完成数独程序,数独要求每行每列且每个3*3矩阵都必须是1~9的数字组成。 思路:dfs 现在推 第一个矩阵为 0,0 0,1 0,2 第二个矩阵为 0,3 0,4 0,5 1,0 1,1 1,2 1,3 1,4 1,5 2,0 2,1 2,2 2,3 2,4 2,5 如果直接 (r+c)/3有 阅读全文
posted @ 2018-08-02 11:56
徐小晋
阅读(181)
评论(0)
推荐(1)
摘要:
题意:一个集合(矩阵) m[i][j]=m[j][i]权值,分成两个集合,使其权值最大。注:在同一个集合中权值只能算一个。 思路:dfs 代码上需要注意的问题: 这里有个回溯的操作,如果不执行dfs的话,就说明i放到集合1并不合适,所以放到集合0 解决问题的代码: 阅读全文
posted @ 2018-08-02 10:33
徐小晋
阅读(189)
评论(0)
推荐(0)
摘要:
题意:一个5*5地图上面,从任意位置上下左右跳五次,组成一个数。问:不重复的数有多少个? 思路:dfs 解决问题的代码: 阅读全文
posted @ 2018-08-02 10:25
徐小晋
阅读(149)
评论(0)
推荐(0)
摘要:
题意:有不规则地图,在上面放n个相同的棋子,要求摆放的时候不同行不同列。问:有多少种摆法? 思路:dfs+回溯 代码上需要注意的地方: 其中有个回溯的操作,为什么? 因为如果当前没有执行dfs(cur+1)这个语句的话,说明i这个位置不能摆放棋子,或者说摆放棋子不妥。所以需要往回标记 解决问题的代码 阅读全文
posted @ 2018-08-02 10:18
徐小晋
阅读(422)
评论(0)
推荐(0)
摘要:
题意:给你一个迷宫地图,让你走。问最多可以走多少个“." 思路:dfs 代码上的注意:四个方向上的遍历,用一个二维数组比较方便 解决问题的代码: 阅读全文
posted @ 2018-08-02 10:09
徐小晋
阅读(83)
评论(0)
推荐(0)

浙公网安备 33010602011771号