手机网站生成代码杭州做搜索引擎网站的公司

张小明 2026/1/1 18:17:54
手机网站生成代码,杭州做搜索引擎网站的公司,网站开发是用html还是jsp,网站建设 无锡题目描述 给定一个正整数 nnn #xff0c;它的二进制表示为不含前导零的二进制字符串。我们需要将 nnn 表示为带符号的二进制表示#xff08; signedbinaryrepresentation\texttt{signed binary representation}signed binary representation #xff09;#xff0c;即它的二进制表示为不含前导零的二进制字符串。我们需要将n nn表示为带符号的二进制表示signed binary representation \texttt{signed binary representation}signed binary representation即n ∑ i 0 k a i × 2 i n \sum_{i0}^{k} a_i \times 2^ini0∑k​ai​×2i其中a i ∈ { − 1 , 0 , 1 } a_i \in \{-1, 0, 1\}ai​∈{−1,0,1}。在二进制表示中每一位a i a_iai​只能是0 00或1 11因此表示是唯一的。但是在带符号的二进制表示中每一位可以是− 1 -1−1、0 00或1 11因此表示不唯一。题目要求我们找到一种带符号的二进制表示使得其中非零数字即 1 11或− 1 -1−1的个数最少。如果存在多种最优解则输出其中字典序最小的一个按照ASCII \texttt{ASCII}ASCII码顺序比较其中字符的顺序为 - 0。输入包含多个测试用例最多25 2525个每个测试用例一行是一个正整数n 2 50000 n 2^{50000}n250000的二进制表示不含前导零。输入以n 0 n 0n0结束该行不需处理。对于每个测试用例输出一行给出满足条件的带符号二进制表示用字符表示 1 11-表示− 1 -1−10表示0 00且不含前导零。题目分析本题的关键在于理解如何通过带符号的二进制表示来减少非零数字的个数。观察普通的二进制表示连续的1 11串可以通过进位和借位的方式转换为更少的非零数字。例如二进制数7 77的普通表示是111 111111即4 2 1 421421其中有3 33个非零数字。但我们可以将其表示为100 − 100-100−即8 − 1 8-18−1这样只有2 22个非零数字 1 11和− 1 -1−1。更一般地连续的k kk个1 11可以表示为11 … 1 ⏟ k 个 2 k − 1 2 k − 2 0 \underbrace{1 1 \dots 1}_{k \text{个}} 2^k - 1 2^k - 2^0k个11…1​​2k−12k−20即一个 1 11在高位k − 1 k-1k−1个0 00在中间一个− 1 -1−1在最低位。这样就将k kk个非零数字减少到了2 22个。然而这还不是最优的。因为当我们进行这样的转换时会产生一个进位即将连续1 11串前面的0 00变为1 11。这个进位可能与更高位的1 11形成新的、更长的连续1 11串从而可以进一步优化减少更多的非零数字。解题思路基于以上分析我们可以设计一个贪心算法从二进制表示的最低位向最高位扫描处理连续的1 11串。算法步骤初始化在二进制字符串前添加一个字符0作为哨兵用于处理可能的最高位进位。从低位向高位扫描对于每个位置i ii从最低位到最高位如果当前字符是1则向前向高位方向寻找连续1的起始位置j jj即s [ j ] ′ 0 ′ s[j] 0s[j]′0′且s [ j 1.. i ] s[j1..i]s[j1..i]都是1。计算连续1 11的长度l e n i − j len i - jleni−j。如果l e n ≥ 2 len \ge 2len≥2则进行转换将s [ i ] s[i]s[i]改为-表示− 1 -1−1。将s [ j 1.. i − 1 ] s[j1..i-1]s[j1..i−1]改为0。将s [ j ] s[j]s[j]改为1进位。注意这里进位设为1而不是因为它可能与更高位的1构成更长的连续1 11串从而在后续扫描中被进一步优化。特殊情况如果l e n 2 len 2len2且j 0 j 0j0即连续两个1 11在最高位则直接将这两个位置设为不进行转换因为转换后最高位会变成-可能不是字典序最小。如果l e n 1 len 1len1单个1 11则直接将该位置设为。处理最高位进位扫描结束后如果哨兵位s [ 0 ] s[0]s[0]变成了1则将其改为。输出结果如果s [ 0 ] ′ 0 ′ s[0] 0s[0]′0′则从s [ 1 ] s[1]s[1]开始输出否则从s [ 0 ] s[0]s[0]开始输出。这样可以确保没有前导零。算法正确性说明该算法是贪心的从最低位开始每次遇到连续长度≥ 2 \ge 2≥2的1 11串就进行转换。这样做的正确性基于以下观察最优子结构一个数的最优带符号二进制表示其最低位的决策不会影响更高位的最优性因为转换只产生向高位的进位不影响已经处理过的低位。贪心选择性质对于连续的k kk个1 11立即进行转换变为2 k − 1 2^k - 12k−1总是比保持原样更优或至少不差当k ≥ 3 k \ge 3k≥3时严格更优k 2 k 2k2时需要特殊处理字典序。字典序最小由于我们从低位向高位处理且在高位尽量保持而不是-最终得到的表示在非零数字最少的前提下是字典序最小的。时间复杂度扫描整个字符串一次每次处理连续1 11串时可能会修改多个字符但每个字符最多被修改一次从1改为0或-因此总时间复杂度为O ( n ) O(n)O(n)其中n nn是二进制字符串的长度。由于n ≤ 50000 n \le 50000n≤50000算法完全可行。空间复杂度只需要存储输入字符串和一些辅助变量因此空间复杂度为O ( n ) O(n)O(n)。代码实现// Power Signs// UVa ID: 11166// Verdict: Accepted// Submission Date: 2025-12-20// UVa Run Time: 0.000s//// 版权所有C2025邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;constintMAXN50010;intmain(){chars[MAXN];while(scanf(%s,s1)1s[1]!0){s[0]0;intnstrlen(s1);// 从低位向高位扫描i从n到1for(intin;i0;i--){if(s[i]1){intji-1;// 向前寻找连续1的起始位置while(s[j]1)j--;// 检查连续1的长度// 连续1的长度≥2if(i-j2){// 特殊情况连续2个1且在最高位j0if(i-j2j0)s[i]s[i-1];else{// 一般情况转换连续1// 最后一个1变成-1s[i]-;// 中间的1变成0for(intki-1;kj;k--)s[k]0;// 进位前面的0变成1不变为因为有可能与前面的1构成更长的连续1串// 从而可以得到非0数字更少的表示从而可能会更优s[j]1;}}elses[i];// 单个1直接变成}}// 处理可能的最高位进位if(s[0]1)s[0];// 输出结果if(s[0]0)printf(%s\n,s1);elseprintf(%s\n,s);}return0;}示例分析样例输入10000 1111 10111 0样例输出0000 000- 00-解释10000 1000010000二进制16 1616没有连续1 11直接转换为0000。1111 11111111二进制15 1515从低位扫描连续4 44个1 11转换为1000 − 1000-1000−即000-。10111 1011110111二进制23 2323首先处理低三位111 111111转换为100 − 100-100−同时进位使前面变为1 11得到1100 − 1100-1100−。然后处理新的连续两个1 11在第二位和第三位但由于它们在最高位且长度为2 22不转换直接设为最终得到00-。总结本题是一道典型的贪心算法题目关键在于发现通过进位可以将连续的1 11串转换为更少的非零数字并且这种转换可以连锁进行从而得到全局最优解。算法的时间复杂度和空间复杂度都是线性的适合处理大规模的输入数据。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中国最好网站建设公司排名怎么创建网站快捷方式

Langchain-Chatchat用于文化遗产数字化保护 在博物馆的档案室里,一位研究员正为查找“唐代壁画中飞天形象的演变”而翻阅数十本厚重的文献。这些资料有的是扫描版PDF,有的来自口述史录音转写文本,分散在不同格式、不同系统的文件夹中。传统检…

张小明 2025/12/30 23:40:30 网站建设

盐城整站优化网站增加keywords关键词有影响吗

一、苯丙烷代谢途径在植物生物学中有何重要意义?苯丙烷代谢作为植物次生代谢的核心通路,其产物在植物生命活动中扮演着多重关键角色。该途径产生黄酮类、异黄酮、白藜芦醇、香豆素、花青素及木质素等多种生物活性物质,这些化合物不仅参与植物…

张小明 2025/12/31 0:55:32 网站建设

网站名称个人wordpress区块 宽度

量子计算中的光子干涉与超导回路技术解析 1. 双光子量子干涉 双光子量子干涉,也被称为洪 - 欧 - 曼德尔效应,由罗切斯特大学的物理学家钟启鸿、欧泽宇和伦纳德曼德尔于1987年证实。当两个相同的单光子进入一个1:1分束器时,就会出现这种效应。这里的1:1意味着光子有50:50的…

张小明 2025/12/28 5:15:19 网站建设

安徽做网站电话wordpress 还是织梦

请提供与功率电子、嵌入式系统、音频硬件、电源管理、数字信号处理、ADC/DAC、MOSFET驱动、PFC电路、音频放大器设计等相关技术主题的标题,我将严格按照指定框架为您生成符合要求的专业技术分析文章。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

张小明 2025/12/31 7:30:38 网站建设

网络营销师考试内容广州营销型网站优化

VirtualMonitor虚拟显示器终极指南:零成本扩展你的工作空间 【免费下载链接】VirtualMonitor 项目地址: https://gitcode.com/gh_mirrors/vi/VirtualMonitor 还在为单屏幕的限制而苦恼?VirtualMonitor虚拟显示器为您带来革命性的解决方案&#x…

张小明 2025/12/30 1:25:11 网站建设