最新要闻
- 0反式脂肪酸!旺旺邦德轻乳咖啡官方清仓:9瓶1盒仅19.9元
- 目标基辅号
- 环球观点:鹡鸰女神第2集-鹡鸰女神无修版
- 环球新动态:雷军宣布小米参加MWC 2023大会!铁大、铁蛋机器人海外亮相
- 上海一特斯拉再现失控事故:成道路护栏“终结者”
- 全球实时:插混和增程路线谁更好?院士欧阳明高给出答案
- 上海中环内圈发生单车事故 官方通报:车辆起火翻滚地面 驾驶员死亡
- 全球新资讯:ChatGPT大火 马斯克批OpenAI违背初心:被微软控制 只顾赚钱
- 贵南高铁全线静态验收:时速350公里 南宁到贵阳时间缩短一半
- 世界观热点:蹲夜叉还有意外收获?变异蝴蝶直接就往脸上刷啊!
- 今日热讯:暴雪宣布《暗黑4》新雕像
- 43年的友情!马云低调现身墨尔本 与昔日好友相见
- 每日视点!男子将比亚迪海豚改装称房车:车内洗澡、看电影、吃火锅
- 精选!特斯拉前脸被完全撞烂 气囊没弹!车主:可以去维权吗?
- 当前聚焦:《地下城与勇士》大面积更改名称、美术素材 玩家喊话中消协:退钱
- 环球通讯!特斯拉创始人:自动驾驶是胡扯 汽车不应像iPhone
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点报道:0X01 位运算笔记
位运算,经常可以用来处理一些数学或动归方面的问题,通常会在数据范围较小的情况下使用。
【资料图】
为方便起见,一个 \(\mathrm{n}\) 位二进制数从右到左分别为第 \(\mathrm{0 \sim n - 1}\) 位。
快速幂 (\(\texttt{ACW89 a^b}\))
求 \(\mathrm{a^b}\) 对 \(\mathrm{p}\) 取模的值。
\(a, b \leq 10 ^ 9, 1 \leq p \leq 10 ^ 9\)。
考虑 \(b\) 的二进制。若可以表示为 \(\sum_{i}^{} 2^i\) 的形式,那么 \(a^b\) 就可以表示成 \(a ^ {\sum_{i}^{} 2 ^ i}\)。
而 \(a ^ {2 ^ i} = (a^{2^{i - 1}}) ^ 2\),这样可以通过递推的方式求出 \(a ^ {2 ^ i}\)。由于 \(\max\{i\}\) 是 \(\log b\) 级别的,所以总时间复杂度为 \(O(\log b)\)。
#include #include #include #include using namespace std;using LL = long long;int qpow(int a, int b, int p) { int ans = 1 % p; // 这里是为了避免 p = 0 的情况出现 while (b) { if (b & 1) ans = (LL)ans * a % p; a = (LL)a * a % p; b >>= 1; } return ans;}int main() { int a, b, p; scanf("%d%d%d", &a, &b, &p); printf("%d\n", qpow(a, b, p)); return 0;}
六十四位整数乘法 (\(\texttt{ACW90}\))
求 \(a * b\) 对 \(p\) 取模的值。
- 算法一:
我们可以用类似快速幂的思想,使用二进制优化算法。将 \(b\) 拆分成二进制来看。假设 \(b\) 拆分成二进制之后是 \(\sum 2^i\),那么答案就是 \(a ^ {\sum 2 ^ i} = \prod a ^ {2 ^ i}\)。由于 \(\max_i \leq \log_2 b\) ,因此可以保证复杂度为 \(O(\log b)\)。
#include #include #include #include using namespace std;using LL = long long;LL mul(LL a, LL b, LL p) { LL ans = 0; while (b) { if (b & 1) ans = (ans + a) % p; a = (a << 1) % p; b >>= 1; } return ans;}int main() { LL a, b, p; scanf("%lld%lld%lld", &a, &b, &p); printf("%lld\n", mul(a, b, p));}
- 算法二:
\(a \times b \pmod p = a \times b - \left \lfloor a \times b / p \right \rfloor\) 。
因此可以使用 \(\operatorname{long double}\) 存储 \(\left \lfloor a \times b / p \right \rfloor\),\(\operatorname{long long}\) 存储 \(a \times b\)。二者相减即可。
#include #include #include #include using namespace std;using LL = long long;LL mul(LL a, LL b, LL p) { a %= p, b %= p; LL c = (long double)a * b / p; LL ans = a * b - c * p; ans += (ans < 0) ? p : 0; ans -= (ans >= p) ? p : 0; return ans;}int main() { LL a, b, p; scanf("%lld%lld%lld", &a, &b, &p); printf("%lld\n", mul(a, b, p));}
最短 \(\text{Hamilton}\) 路径 (\(\texttt{ACW91}\))
给定一张 \(n\) 个点的带权无向图,点从 \(0∼n−1\) 标号,求起点 \(0\) 到终点 \(n−1\) 的最短 \(\text{Hamilton}\) 路径。
\(\text{Hamilton}\) 路径的定义是从 \(0\) 到 \(n−1\) 不重不漏地经过每个点恰好一次。 \(n \leq 20\)。
考虑状态压缩 \(dp\)。由于 \(n\) 的规模很小,可以直接用二进制枚举每个点的状态,其中 \(1\) 表示经过一次,\(0\) 表示没有经过。
设置状态 \(f_{i, j}\) ,表示当前在第 \(i\) 个点,当前状态是 \(j\) 的最短路径。首先要枚举所有可行状态,刷表时枚举当前点和要走到的点,如果当前点没有被走到过或者要去的点已经走过一遍了,那么直接剪掉。最终答案即为 \(f_{n - 1, 2^n - 1}\)。
由此来看,复杂度为 \(O(2 ^ n n ^ 2)\),但是剪枝强度很大,可以跑过。
#include #include #include #include using namespace std;const int N = 21;int f[N][1 << N];int n, w[N][N];int main() { scanf("%d", &n); for (int i = 0; i < n; i ++ ) for (int j = 0; j < n; j ++ ) scanf("%d", &w[i][j]); memset(f, 0x3f, sizeof f); f[0][1 << 0] = 0; for (int i = 1; i < 1 << n; i ++ ) for (int j = 0; j < n; j ++ ) if (i & (1 << j)) { for (int k = 0; k < n; k ++ ) { if (i & (1 << k)) continue; f[k][i | (1 << k)] = min(f[k][i | (1 << k)], f[j][i] + w[j][k]); } } printf("%d\n", f[n - 1][(1 << n) - 1]); return 0;}
起床困难综合征 (\(\texttt{ACW998}\))
本题思路是按位贪心。可以参照 \(01trie\) 进行理解。
形象地看,假设我有一个 \(n\) 位的二进制数,每一位都是 \(0\),现在我可以把某一位变成一使得这个数最大,那么我肯定要变 \(n - 1\) 位,因为我只要把最高位设成 \(1\),就会比 \(0 \sim n - 2\) 位都设成 \(1\) 要大 \(1\)。
本题也可以用这种思路,将答案从高位到低位按最优方案填充即可。
#include #include #include #include using namespace std;const int N = 100010;int n, m, w[N];string str[N];int calc(int bit, int now) { for (int i = 1; i <= n; i ++ ) { int x = w[i] >> bit & 1; if (str[i] == "AND") now &= x; else if (str[i] == "OR") now |= x; else now ^= x; } return now;}int main() { ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> str[i] >> w[i]; int val = 0, ans = 0; for (int i = 29; ~i; i -- ) { int res0 = calc(i, 0); int res1 = calc(i, 1); if (val + (1 << i) <= m && res0 < res1) val += 1 << i, ans += res1 << i; else ans += res0 << i; } cout << ans << endl; return 0;}
焦点报道:0X01 位运算笔记
P4171 满汉全席
0反式脂肪酸!旺旺邦德轻乳咖啡官方清仓:9瓶1盒仅19.9元
目标基辅号
环球观点:鹡鸰女神第2集-鹡鸰女神无修版
环球新动态:雷军宣布小米参加MWC 2023大会!铁大、铁蛋机器人海外亮相
【世界快播报】(数据库系统概论|王珊)第五章数据库完整性-第四、六、七节:约束命名子句、断言和触发器
上海一特斯拉再现失控事故:成道路护栏“终结者”
全球实时:插混和增程路线谁更好?院士欧阳明高给出答案
上海中环内圈发生单车事故 官方通报:车辆起火翻滚地面 驾驶员死亡
每日速讯:F - 树状数组 2【GDUT_22级寒假训练专题五】
全球新资讯:ChatGPT大火 马斯克批OpenAI违背初心:被微软控制 只顾赚钱
贵南高铁全线静态验收:时速350公里 南宁到贵阳时间缩短一半
速看:05-python运算符
【全球聚看点】字节二面:10Wqps超高流量系统,如何设计?
全球快看:动态规划解决最值、有多少方案之类问题
[奶奶看了都会]ChatGPT接入企业微信成为聊天机器人
世界观热点:蹲夜叉还有意外收获?变异蝴蝶直接就往脸上刷啊!
今日热讯:暴雪宣布《暗黑4》新雕像
43年的友情!马云低调现身墨尔本 与昔日好友相见
每日视点!男子将比亚迪海豚改装称房车:车内洗澡、看电影、吃火锅
全球热点!仿豆瓣发布-编辑框自适应高度,自动滚动定位到焦点输入
今日热门!(数据库系统概论|王珊)第五章数据库完整性-第一、二、三节:数据库三大完整性
精选!特斯拉前脸被完全撞烂 气囊没弹!车主:可以去维权吗?
当前聚焦:《地下城与勇士》大面积更改名称、美术素材 玩家喊话中消协:退钱
环球通讯!特斯拉创始人:自动驾驶是胡扯 汽车不应像iPhone
【天天新要闻】AMD、NV把显卡卖到万元 Intel成救星:下代能冲RTX 4080
手机预置软件影响用户体验 央媒揭秘幕后原因:厂商利益驱动
全球视点!苹果上新348元省电保护膜!网友:觉得贵的不是目标客户
读Java实战(第二版)笔记14_CompletableFuture及反应式编程背后的概念
如果我种一个橄榄核,它会长成一棵树吗?
天天即时:全球第10 三星Galaxy S23 Ultra相机DXO等分140:不敌小米11 Ultra
《塞尔达传说:王国之泪》日本最新海报曝光:腐朽大师剑现身
讯息:《生化危机4:重制版》硬件要求出炉:开光追 A卡很受伤
仰望银河背后 吉利是真着急了
散片就是这么来的?男子腰缠155片CPU入境被海关查获
【全球热闻】SpringBoot中统一API返回格式的两种方式
焦点消息!C#两个特殊的集合类StringCollection与StringDictionary
每日聚焦:03-数据类型
快播:期末复习——虚拟内存
速讯:04-数据类型转换
当前报道:安卓机皇!三星Galaxy S23 Ultra下周首销:价格对标iPhone 14 Pro Max
环球热讯:蜜雪冰城门店没关音响扰民一宿 客服:门店整改 向周围居民送冰淇淋致歉
RTX 40系移动平台性能测试出炉:RTX 4080与RTX 4090差距极小
世界新消息丨日本新生儿数量首次跌破80万 创有统计以来最低值:789万老人还在打零工
全球快播:iPhone 14最高降1600元 苹果经销商贴本卖机:谁还买安卓?
九型性格系统_0型血女生的性格
世界快资讯丨首届中国非遗保护年会开幕 四川非遗项目精彩亮相
简讯:超过年限要报废!老人用高压锅炖肉脸部被重伤
女子网购奶粉4个月吃剩半罐退货:被店家吐槽似乞丐
官方称《狂飙》拍摄地拍照收费算勒索: “刀哥”回应不是我 行为不可取
头条焦点:伸展树(Splay)详解
当前简讯:期末复习——内存管理
报道:django连接ubuntu22下的mysql8
打造自己的ChatGPT:逐字打印的流式处理
从矩阵的谱半径到神经网络梯度消失
当前速读:女子厨房接水时速热水龙头突然爆炸冒白烟:爆炸声堪比雷响
【天天时快讯】特斯拉Model 3追尾公交1死1伤 事故已影响销售:网友关心刹车问题
全球快资讯丨女子屋内湿度表1年数值不变 好奇拆下检查后无语:还以为是坏的
世界时讯:【JS】Pug调用自定义JS函数
头条:Java正则匹配域名白名单
曾经很火但消失了的APP!网友第一个想到的是”腾讯微博“
环球即时:女子入住网红酒店发现床垫有尿渍:满房一股味
防AI越界!微软将出手:把必应聊天回复限制在5条以内
天天热文:全球最高安全标准 我国自研华龙一号技术:太平岭核电预计2025年投产发电
天天热资讯!挑战全网最土的“公主下午茶” 让人看饿:网友感慨羞辱多少爱装腔作势人
【新要闻】组合数学_第1章_排列与组合
每日消息!称霸意甲的非洲新一代神锋,奥斯梅恩正在征服足坛
让NV对30系显卡降价不可能!厂商清仓RTX 3080:2年后价格重回首发价
全球观速讯丨《文明6》已玩腻 等了7年的《文明7》官宣:主管大换血
环球关注:tui.editor一款功能强大的markdown编辑器
热消息:关于python中将字典的所有key组成一个列表的方式
【环球报资讯】Cesium CallbackProperty(十五)
【世界独家】全天候显示能掉多少电?iOS 16.4告诉你
环球观速讯丨公司回应要求员工扫厕所:这是福利 每月有几十元奖励
焦点日报:冲击40亿有望!《流浪地球2》累计票房已超38亿
女子情人节翻垃圾桶捡到金链:最后被前主人要回 网友热议
全球速读:【算法训练营day48】LeetCode198. 打家劫舍 LeetCode213. 打家劫舍II LeetCode337. 打家劫舍III
GitHub 入门 与 2023年2月18日10:29:02
观天下!假的!马斯克否认修改算法推荐自己帐号 将追责说谎员工
环球微动态丨颠覆性创新 潍柴全球首发大功率SOFC燃料电池:研发花了20亿
环球新资讯:学习笔记——尚好房项目的数据库建表文件
VirtualBox 配置虚拟机 Host-only 和 Nat
世界百事通!win系统提示请插入多卷集的最后一张磁盘解决方法
第三章 计算机进行小数运算时出错的原因
全球聚焦:北江纺织:拟冲刺上交所IPO上市,预计募资4.22亿元,近年综合毛利率逐年下降
【环球速看料】五菱会玩!城市玩乐潮品SUV悦也“小书包”是块屏:可自定义内容
天天看点:打造名族品牌!杨元庆:联想核心生产制造还是立足中国
天天快播:[数据结构] AVL树
全球头条:超越GPS主导国内导航定位 北斗日定位量超3000亿次
焦点简讯:努比亚Z50 Ultra保护壳泄漏:后置摄像模组巨大无比
全球快看:院士称我国已经具备ChatGPT算力基础 关键在如何爆发
全球新消息丨工作至死:日本789万老人还在打零工
资讯:菲律宾一飞机早上起飞后失联:近期第二起
(数据库系统概论|王珊)第四章数据库安全性:习题
快播:橙色奶油冰淇淋层蛋糕食谱
世界要闻:精装版吉利星越L?领克DX11最新谍照曝光:首上魅族车机
天天消息!秒美国资费!每月198 还能更便宜:我国千兆宽带将全面普及 第二批城市名单来了
焦点报道:java便捷的word导出工具(officejj)
当前观点:关于 The River All Red (Tr.许渊冲) 的一点感想