首页 > 其他分享 >CF1743E FTL(哈希,DP)——关于 xorshift 的哈希冲突

CF1743E FTL(哈希,DP)——关于 xorshift 的哈希冲突

时间:2022-11-01 11:47:24浏览次数:83  
标签:le xorshift long CF1743E 哈希 FTL DP

CF1743E FTL

有两把 laser 枪,一把伤害 \(p_0\) 两发间隔时间至少 \(t_0\),另一把 \(p_1, t_1\)。打敌方太空船,血量 \(N\) 防御值 \(s\),如果某个时刻你对太空船打出 \(P\) 的总伤害,对它造成真实伤害就是 \(P - s\)。\(1 \le h \le 5000\),\(2 \le p_1, p_2 \le 5000\)。

CODE

直接 DP,\(f(n, x, y)\) 表示还剩 \(n\) 的血量,第一把枪还需要装弹 \(x\) 时间,第二把还需 \(y\),的最少用时。状态数最多约 \(1.25 \times 10 ^ 7\),问题在于如何哈希这个 \((n, x, y)\)。

通过做法的哈希方法质数进制加 long long 自然溢出

如果哈希表大小开 \(2 ^ {24}\),单链长不超过 \(3\)。

long long hash_tuple(int n, long long x, long long y) {
	return n + x * 5007 + y * 5007 * 1000000000007ll;
}

\(({\rm xorshift}, +)\) 哈希

如果哈希表大小开 \(2 ^ {24}\),单链长不超过 \(5\)。

long long xorshift(long long x) {
	x ^= x << 13;
	x ^= x >> 7;
	x ^= x << 17;
	return x;
}

long long hash_tuple(int n, long long x, long long y) {
	return xorshift(n) + xorshift(x) + xorshift(y);
}

标签:le,xorshift,long,CF1743E,哈希,FTL,DP
From: https://www.cnblogs.com/Pizza1123/p/16847125.html

相关文章

  • 【XSY3333】魔力(差分,哈希)
    ”每个字符出现次数相等“可以使用差分简化:记录数组\(s_c\)为字符\(c\)的出现次数减去字符\(\texttt{"a"}\)的出现次数,那么条件等价于\(s\)数组全为\(0\)。维护......
  • 哈希表——两数之和
    classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){std::unordered_map<int,int>map;for(inti=0;i<nums.size(......
  • CF580E - Kefa and Watch 线段树维护哈希
    题目思路区间修改+区间查询,考虑用线段树维护哈希实现。那么首先,需要明确判断循环节的方式:如上图所示是一个重要的结论:当区间的哈希值与的哈希值相等时,那么该区间是以为循环......
  • 哈希加密与日志模块
    一、hashlib模块1、简介什么是哈希模块:​ hashlib模块是一种加密模块,内部存有多种加密类型加密的作用:​ 可将明文数据进行加密,转换成一串密文,密文越长说明文件加密......
  • 力扣(leetcode) 1. 两数之和(暴力枚举) (哈希表)
    题目在这:https://leetcode-cn.com/problems/two-sum/nums=[2,7,11,15]target=9这题还是比较容易想到的,题目要求在nums数组里找俩不同位置的数他们相加等于给的target......
  • 力扣(leetcode) 12. 整数转罗马数字 (哈希映射表解法)、(暴力匹配)
    题目:https://leetcode-cn.com/problems/integer-to-roman/题目很好理解,并且容易想到解法。题目要求输入范围是1-3999可以理解为在每一位上找到相应的罗马数字表示即可比如......
  • 哈希表——快乐数
    #include<iostream>#include<unordered_set>usingnamespacestd;//取数值各个位上的单数平方之和intgetSum(intn){ intsum=0; while(n) { sum+=(n%......
  • 哈希表——哈希表理论
    哈希表讲解参考连接:原文链接:https://blog.csdn.net/weixin_40535588/article/details/121480672此处源于代码随想录哈希表的关键码就是数组的索引下标,然后通过下标直接......
  • 哈希表——有效的字母异位词
    暴力的解法,两层for循环,同时还要记录字符是否重复出现,很明显时间复杂度是O(n^2)利用哈希表解法classSolution{public:boolisAnagram(strings,stringt){......
  • 数据结构:7种哈希散列算法,你知道几个?
    作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!......