自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java注意点

http://127.0.0.1:8080/MVC/index.dogetServletPath():index.dogetContextPath():/MVC

2020-11-20 10:48:27 160

原创 B. Johnny and Grandmaster----------------------思维(贪心)

题意:给定n个数和p,现在你需要将n个数分成两个集合A,B 使得两个集合差值绝对值最小解析:一贯的套路我们把pk[i] 当成p进制下,第k[i]位为1.那么就出现了一个性质 25 > 20 + 21 + 22 + 23 +24所以我们按照k[i] 从大到小排第一步找到最大的k[i] ,ans+=pk[i] 相当于把k[i] 放到A集合中第二步 ans-=pk[i] 相当于把k[i]放到B集合中, 直到ans=0 再回到第一步去即可最后还有一个问题,就是an..

2020-11-17 16:49:04 291 1

原创 D. Johnny and Contribution---------------------------思维(贪心)

题意:给定n个点,m条边。每个点都有一个权值ai。问你如何遍历图,使得当前节点为u,与u相连的节点集合{v1,v2,v3,v4,v5…}求出mex{v1,v2,v3,v4…v5} 为 x 判断 a[u]是否等于x 。如果存在序列输出,如果不存在输出-1解析:肯定是贪心的从小到大遍历。所以我们只要把ai排好序。当轮到i节点时,判断与i节点相邻的数的mex是否等于a[i] 如果不等于直接输出-1 即可 。剩下的模拟即可#include<bits/stdc++.h>us..

2020-11-17 15:36:39 263

原创 freemarker-------------------学习笔记(容器类型)

容器类型ContainersHash遍历方法:数据类型Hash: Map<String,Object> score = new HashMap<>(); score.put("chinese",90); score.put("english",87); score.put("math",93); model.put("score",score);freemarker 遍历模板model中的score

2020-11-17 09:16:36 214

原创 freemarker--------------------------学习笔记(标量类型)

标量类型 ScalarsStringNumberBooleanDate-like标量的显示格式Built-ins标量在显示时,可以用一个内置的格式转换方法例如:${id?c}${birthdat?date}${sex?then('男','女')}容器类型 ContainersHash 哈希类型:Map,HashMapSequence 顺序类型:List,ArrayListCollection 集合类型:如Set...

2020-11-17 08:56:50 164

原创 B. Catching Cheaters-----------------------思维(dp)

题意:给定a,b两个串,求最大的S(c,d) = 4 * lcs(c,d) -|c| - |d| 。c和d为a,b串的子串。lcs(c,d) 为c,d的最长公共子序列。解析:设f[i][j]:表示a串以i结尾 和b以j结尾的最长公共子序列长度。当a[i]==b[j]转移方程:f[i][j]=max(f[i][j],f[i-1][j-1]+2)因为a[i]==b[j] 那么前一个状态就是f[i-1][j-1] 。 |c|和|d|的长度都-1了 lcs(c,d)也-1了那么 4x -..

2020-11-16 19:59:50 335

原创 A. Knapsack------------------------------------思维(贪心)

题意:给定n个数和w,每个数都有一个权值ai. 问你如何选择使得权值之和在[(w+1)/2,w] 之间。如果满足输出选择数的下标。如果不行输出-1解析:贪心,从大到小贪。例:n=6 w=121 1 1 1 1 11如果从小到大贪,这个样例会输出-1.必须从大到小贪#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+1000;ll w;struct node..

2020-11-16 19:44:17 474 2

原创 B. Identify the Operations-----------------------思维(组合数学)

题意:给定长度为n的数组A和长度为k的数组B现在需要从A中取出k个数 要和B数组一样。取数规则1.选择ti Ati-1或Ati+1可以加入到B数组2.把选择的ti 踢出去 Ati+1~Atn 各左移一位3.重复1直到选出k个数问?问有多少种不同的取法使得取出k个数和数组B完全一致解析:一眼看上去就是组合数,突破口就是从B数组中的每一位进行讨论因为bi 只可能来自 Ati-1 ,Ati+1 这2种可能分情况第一种情况 :假设bi在A数组的下标为x ,如果A[x-..

2020-11-11 16:09:45 238

原创 C. The Delivery Dilemma---------------------思维(贪心排序)

解析:因为A数组是快递并发执行的,所以只需取最大值B数组是需要自己去的时间之和那么我们排序A数组讨论每个位置i,那么A数组[1,i]快递的时间为Ai那么[i+1,n]为我们自己去取的时间,维护一个前缀和即可然后从两个操作取得最大值,然后整体最小即可#include<bits/stdc++.h>using namespace std;const int N=2e5+1000;typedef long long ll;ll b[N]; int t,n;struct n..

2020-11-05 23:18:16 330

原创 B. Saving the City---------------------------思维(贪心+模拟+套路)

题意:给定01串,1代表需要爆破的点。爆破1当前位置连通块需要花费a的代价如果把0变成1 需要花费b的代价问最少需要花费多少使得全部变成0题解贪心(套路题):如果在全都不是0的情况下,最少爆破一次。那我们就枚举每两个连通块之间0的个数 然后贪心计算是把0转换成1爆破划算,还是按照连通块个数爆破划算 。假设 区间0的个数为x那么总的修改次数贡献为 :x * b再加上还要爆破一次:x * b+a所以判断一下 x * b+a < 2 * a 如果小于我们就贪心的把这段0都变为..

2020-11-05 21:14:01 290

原创 Easy Equation-------------------------思维(差分+前缀和)

解析:由于N非常大,只能O(N)做法所以我们利用前缀和来求出 a+b+c例如求a+b我们只要a即可只要让[i,i+b ]区间+1 代表这个区间里面的数都可以由a,b构造而出所以利用差分 f[i]++,f[i+b+1]–;最后求一遍前缀和即可#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;type...

2020-11-01 21:50:52 402

组合数学.pdf

1.1 排列 (1)在没有其他条件的情况下,从 个不同元素中选取 个不同的元素的排列数为 ,当 > 时, =0 (2)在 个不同元素中选取 个元素的圆排列的个数为 1.2 组合 (1)在在没有其他条件的情况下,从 个不同元素中选取r个不同的元素的排列数为 , 当 > 时, =0

2019-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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