- 博客(7)
- 收藏
- 关注
原创 01背包优先队列优化
01背包优先队列优化设重量为w,权值为v则单位重量价值为v / w设有物品1,物品2若v1 / w1 < v2 / w2则说明v2的单位重量价值高即v1 * w2 < v2 * w1于是可重载结构体,使得v2 * w1大的优先级高即:struct Node { LL w, v; Node() {}; Node(LL _w, LL _v) {w = _w, v = _v;} friend bool operator < (Node a, Node b) {
2020-10-31 19:17:11 526
原创 Java函数判定大素数
Java函数判定大素数import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); BigInteger x; while(in.hasNextBigInteger()) { x = in.nextBigInteger(); if(x
2020-10-28 17:30:05 281
原创 SPFA最短路Java模板
SPFA最短路Java模板import java.util.LinkedList;import java.util.Queue;public class Main { public static void main(String[] args) { } static int MAXN = 10000 + 10; static int[] head = new int[MAXN]; static int[] nxt = new int[MAXN << 1]; st
2020-10-15 19:01:06 227 2
原创 ST表
ST表模板ST表求区间最大值模板import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); while(T -- > 0) { int n = in.nextInt(); num = new int[100000 + 10][20]
2020-10-13 10:27:02 239
原创 二进制枚举
二进制枚举ACM中二进制枚举C++1秒大约能枚举22位,for循环不能跑太多,加上子层循环和判断,所以一般范围大概就是在22左右。int i = 0; i < 1 << 221 << 30是1e9超过int类型需要转换为long long类型1ll << 301ll << 60二进制枚举范围为0到2^n - 1。例题import java.util.Scanner;public class Main { // 15个
2020-10-09 13:07:02 232
原创 背包九讲总结
背包九讲总结n件物品,背包容量为m。物品体积为v,价值为w。01背包模板for(int i = 0; i < n; i ++) { for(int j = m; j >= v[i]; j --) { dp[j] = Math.max(dp[j], dp[j - v[i]] + w[i]); }}System.out.println(dp[m]);完全背包模板for(int i = 0; i < n; i ++) { for(int j = v[i]; j <
2020-10-08 12:55:00 181 4
原创 第十一届蓝桥杯大赛软件类省赛Java大学B组(第一场)
第十一届蓝桥杯大赛软件类省赛Java大学B组(第一场)YeRikGSunlRzgDlvRwYkXkrGWWhXaAimport java.util.Date;import java.text.ParseException;import java.text.SimpleDateFormat;public class Main { public static void main(String[] args) throws ParseException { SimpleDateFor
2020-10-05 18:00:10 3068 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人