2018级《程序设计基础(B)》期末机考--18计科(1801--1806)

今年是哪年?: 签到 : #include<bits/stdc++.h> using namespace std; int main() { int n; scanf("%d",&...

2019-01-05 21:24:14

阅读数 368

评论数 2

最长回文 HDU - 3068 -Manacher

最长回文  HDU - 3068  以每个点 为中心的最长回文长度为 半径 -1 #include<bits/stdc++.h> using namespace std; #define maxn 123465 char str[maxn],...

2018-12-29 12:22:59

阅读数 50

评论数 0

Polygon for the Angle-几何-性质

Polygon for the Angle 思路:根 据 几 何 性 质 , 正 多 边 形 所 有 三 个 点组成的 角 都 是最小角的倍数, 然后根据内角公式 可以求出  正多边形 最小角为   多边形内角 / (n - 2)   然后 打表发现 180边形最小角为1  最大角 178  ...

2018-12-29 11:21:16

阅读数 117

评论数 0

Easy Problem-简单DP

Easy Problem 思路:设dp [ i ] [ j ] 表 示 前 i 位 匹 配 了 hard 的 前 j 个 字 符,破 坏 掉 需 要 的 最 小 的 代 价 。 破 毁 掉  前 1 个 只 能 破 坏 自 己,坏 掉 前 两 个 可以通过破坏第一个 或第二个 ,依次类推,按顺...

2018-12-29 11:12:49

阅读数 34

评论数 0

How many HDU - 2609 -最小表示法

How many  HDU - 2609  思路:任何一个字符串环,最小表示都是唯一的。求出 n 个字符串环的最小表示,set统计种类即可。 #include<bits/stdc++.h> using namespace std; #de...

2018-12-29 10:36:09

阅读数 22

评论数 0

Count the string HDU - 3336-NEXT应用-前缀出现次数

Count the string  HDU - 3336  思路:首先 ans = n 是每个前缀出现一次,下面统计这些前缀作为枚举其中每个位置 作为后缀出现的次数求和即可。 这个题要求的 前缀 是包含本身的 ,但是next 中存的是 真后缀,不会重复计数。 #include...

2018-12-28 21:34:07

阅读数 31

评论数 0

D - Circular Dance-思维-dfs

D - Circular Dance 思路: 随便选定一个起点即可。那就选择 1吧 , 选择建边 来把原来的图 恢复, 题目给出的信息是这个点后面的两个点 我们不能确定这个点与谁相连,当能知道的是 后面的两个点一定相连,所以建两个无向边,最终得到的vector 是 每个点都有 两个相连的点,...

2018-12-28 20:39:59

阅读数 49

评论数 0

Cyclic Nacklace HDU - 3746 -next -循环节

Cyclic Nacklace  HDU - 3746    #include<bits/stdc++.h> using namespace std; #define maxn 123456 int nxt[maxn],len,t; char s...

2018-12-28 19:05:06

阅读数 39

评论数 0

Make It Connected-生成树

Make It Connected 题意 :给定 n给点生成一棵树,发费 任意两点可以建边 ,花费为 a [ i ]+ a [ j ] ,还有给定的一些边,都可以使用。 思路 第一种建边方式必然是选择 都插在  a[ id ]最小的点上。 所以直接建立 n-1条 与 最小的 id 相连的边即可...

2018-12-28 17:29:12

阅读数 30

评论数 0

Powers Of Two-思维

Powers Of Two 题意 : 问能否把 n分解成 k个 2 的次幂 的和 思路:优先队列维护 分成的 数,如果数目<k 取出最大的继续分解。控制好终止条件即可。 当 个数>k ,或者 小于 k 并且全为1了不能再分解了 停止输出NO,恰好为...

2018-12-28 17:25:00

阅读数 60

评论数 0

P3431 [POI2005]AUT-The Bus-二维偏序DP

  P3431 [POI2005]AUT-The Bus 思路 :路线是向右上方运动的。我们首先对y排序,离散化.然后很容易发现,我们的状态转移为  f [ i ] = f [ j ] + v a l [ i ] ( x [ i ] > x [ j ]  & &  y ...

2018-12-27 20:15:34

阅读数 54

评论数 1

P4170 [CQOI2007]涂色-区间DP

P4170 [CQOI2007]涂色 思路 :理解为“把一段连续的区间改成一个定值 当i!=j且s[i]==s[j]时,可以想到只需要在首次涂色时多涂一格即可,于是f[i][j]=min(f[i][j-1],f[i+1][j]) 当i!=j且s[i]!=s[j]时,我们需要考虑将子串断成两部...

2018-12-27 15:24:51

阅读数 22

评论数 0

P2774 方格取数问题-最小割模型

P2774 方格取数问题 把点权转换为了边权,我们的目的是断开一些边,使得没有路径从源点到达汇点(为了满足题目的条件)。 然后我们要使断开的边的权值之和最小(断开的边就相当于是不选那个点,就是剩下的边权之和最大) 所以我们可以跑一遍最大流求出最小割,然后用总的边权减去它就是我们的答案了 ...

2018-12-27 09:27:27

阅读数 23

评论数 0

Keywords Search HDU - 2222 -AC自动机

  裸 #include<bits/stdc++.h> using namespace std; #define maxn 567891 int ans,cnt,nxt[maxn],t,n; int tree[maxn][32],bo[maxn];...

2018-12-26 20:58:03

阅读数 29

评论数 2

Chip Factory HDU - 5536 -01字典树

Chip Factory  HDU - 5536  题目大意:n个数字的序列中,找出三个数字使得(a[i] + a[j])^a[k]最大。 题目思路:把这n个数字保存下来建在一个01字典树上面。因为i,j,k三个数字不能重复,所以删去要用的i和j, 再在里面找出能和num( a[i...

2018-12-26 18:22:25

阅读数 50

评论数 0

6005-最长递增子序列 -DP-最大流

6005. 「网络流 24 题」最长递增子序列   思路:先用dp求出第一问的答案,和 dp 数组,dp[i]代表以 i为终点最长不下降子序列的长度 对于第二问,源点T向 dp[i] 等于第一问答案的点连边,dp[i]=1 的点向汇点S连边,中间的点 u...

2018-12-26 16:33:25

阅读数 31

评论数 0

LiberOJ -6210-tree -树形DP

https://loj.ac/problem/6210 题意 :按照定义的路径计算权值方式找一条最小的权值路径。 思路 :设定dp[ i ] [ 0 / 1 ] 以1为根的情况下,以  i 节点下子树走分别全1和走一次2和剩余全走1 的最长链 每遍历一次子树,统计一次答案,DP过程中 ans...

2018-12-26 11:52:54

阅读数 43

评论数 0

C. Ehab and a 2-operation task-构造

题意: n个数,最多n+1操作,要么前i个数加x,要么前i个数对x取余,最后使得严格递增 思路 直接进行n+1次,最终目标为 1 - n-1 的递增序列。开始所有数都取余n;后面n次。 从后面开始到对 看看 这个位置的数 与 其对应的  最终应该成为的   i-1 差距是多少 ,并且需要把...

2018-12-25 22:30:28

阅读数 48

评论数 0

6281. 数列分块入门 5 -区间开方

#6281. 数列分块入门 5     标记区间是否 已经全为1,暴力分块即可。  #include<bits/stdc++.h> using namespace std; #def...

2018-12-25 22:28:09

阅读数 33

评论数 0

6279. 数列分块入门 3 - set维护

#6279. 数列分块入门 3   利用set,只是关心相对大小,于是相同的元素自然可以只保留一个,还能保证有序,其他操作类似 #include<bits/stdc++.h> using namespac...

2018-12-25 21:00:45

阅读数 17

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭