poj1033 磁盘碎片

poj1033——Defragment 题目大意:磁盘有N个簇,有K个文件的每个簇分散在磁盘上,将第一个文件的所有簇移到磁盘1...S1簇,第二个文件的所有簇移到磁盘S1+1...S1+S2簇,问如何用最少的移动次数来实现 输入:N K(1            第i个文件所占的簇个数Si  第i个文件的第j个簇在磁盘中的编号 ... (1 输出:如果已经是最佳放置则输出No optimization needed   阅读详情

模拟磁盘碎片整理,写的晕了~

方法:能移就移,不然处理其所在链或环

#include <iostream>
using namespace std;
int v[10010],id[10010],m,n,k,tot,x,r;
bool loop,f;
int main() {
    while (~scanf("%d%d",&m,&n)) {
          tot = 0;
          memset(v,0,sizeof(v));
          for (int i=1;i<=n;i++) {
              scanf("%d",&k);
              for (int j=1;j<=k;j++) {
                  scanf("%d",&x);
                  v[x] = ++tot;
                  id[tot] = x;
              }
          }
          f = true;
          for (int i=1;i<=m;i++) {
              if (v[i]>0 && v[v[i]]==0) {
                          printf("%d %d\n",i,v[i]);
                          f = false;
                          v[v[i]] = -1;
                          v[i] = 0;
              }
              if (v[i]>0 && v[v[i]]>=0) {
                          k = i;
                          loop = true;
                          while (v[k]!=i) {
                                if (v[k]==0) {
                                             loop = false;
                                             break;
                                }
                                k = v[k];
                          }
                          if (!loop) {
                                     k = id[k];
                                     while (1) {
                                           printf("%d %d\n",k,v[k]);
                                           f = false;
                                           v[v[k]] = -1;
                                           k = id[k];
                                           if (id[k]==0) {
                                                         printf("%d %d\n",k,v[k]);
                                                         f = false;
                                                         v[v[k]] = -1;
                                                         v[k] = 0;
                                                         break;
                                           }
                                     }
                          }
                          else {
                               if (v[k]==k) continue;
                               f = false;
                               for (r=m;r>=0;r--)
                                   if (v[r]==0) break;
                               printf("%d %d\n",k,r);
                               v[r] = v[k];
                               v[k] = 0;
                               id[v[r]] = r;
                               k = id[k];
                               while (1) {
                                           printf("%d %d\n",k,v[k]);
                                           v[v[k]] = -1;
                                           k = id[k];
                                           if (id[k]==0) {
                                                         printf("%d %d\n",k,v[k]);
                                                         v[v[k]] = -1;
                                                         v[k] = 0;
                                                         break;
                                           }
                               }
                          }
              }
          }
          if (f) printf("No optimization needed\n");
    }
    return 0;
}
                               


PG、DDPG、TD3工业级选型指南:噪声/延迟/容错三维度决策 强化学习中的策略梯度类算法(Policy Gradient)是解决连续控制问题的基础范式,其核心在于通过可微策略网络直接优化期望回报。PG结构简洁、抗高斯噪声能力强,适合边缘部署;DDPG引入Actor-Critic分离架构,显著提升连续动作空间的探索效率;TD3则通过双Q网络、延迟更新与目标策略平滑三大机制,系统性抑制过估计偏差,增强策略鲁棒性。这些技术差异直接映射到工业控制、高频金融决策和机器人运动规划等对延迟敏感、噪声干扰强、硬件容错低的关键场景。本文基于Jetson Orin实测数据,聚焦真实部署约 阅读详情

相关推荐

VIVADO中的IP核在MATLAB中仿真

VIVADO中的IP核在MATLAB中仿真项目简述VIVADO建立FFT IP核MATLAB调用FFT IP核 项目简述 我们都会用MATLAB进行算法验证,但是经常会发现如果VIVADO中调用了IP核,那么最终会发现VIVADO与MATLAB之间的数据不可以统一的对应起来。那么,MATLAB验证的效果就会大大下降,那么可不可以想办法将VIVADO中的IP核封装成一个函数在MATLAB中调用呢?答案是可以的。这篇博客主要以FFT的IP核为例讲解封装成一个函数并且成功在MATLAB中调用。 本次实验所使用的软

zhangningning1996的博客 6991

【POJ】【1033】【Defragment】【模拟】解题报告

【POJ】【1033】【Defragment】【模拟】解题报告   地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1033   点评:此题的通过率看起来挺吓人的,其实也不难。   题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占用K个簇,(1 <= K...

weixin_33691700的博客 394

告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程)

本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。

o5p6q的博客 726

POJ1033 Defragment

题目来源:http://poj.org/problem?id=1033 题目大意:   某操作系统的文件系统中,所有的磁盘空间被分为N个大小相等的cluster,编号1至N。每个文件占用一个或多个cluster。所有没有被文件占用的cluster称为是空闲的。磁盘上的一个文件如果放置在连续的cluster上,读取速度是最快的。   磁盘以匀速旋转,磁头找到某一个cluster的时间的不等的。...

weixin_30794499的博客 171

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 387

Workbuddy+DeepSeek V4傻瓜流配置全指南:API接入、模型切换与Agent实战

AI编程助手的核心价值不在于模型本身,而在于如何稳定、安全、低门槛地调用其能力。Agent作为智能体范式,依赖可靠的运行时环境与标准化API通信;DeepSeek V4系列凭借高吞吐、低延迟和强工具调用支持,成为当前生产级Agent的理想引擎。Workbuddy则通过本地配置管理、环境变量注入与UTF-8无BOM容错等工程设计,将复杂部署简化为可复现、可版本化、可团队协同的实践流程。本文聚焦API接入路径下的真实卡点——从Key获取验证、models.json字段语义到沙箱权限控制,覆盖开发者在Window

weixin_33702545的博客 2366

[ACM]磁盘碎片的整理算法

poj 1033 Defragment 解题报告 磁盘整理,按照从第一个文件到最后一个文件的顺序排放,而且每个文件的碎片按原来的顺序放在一起,要求转移的次数最少。 解: 其实根本不用搜索,一开始想搜索想了很久,上网找解题报告也没找到(这么水的一题竟然没有解题报告),于是开始自已想。 其实碎片的排列只有二种情况: 1. A0碎片没有放在原来的位置,而它原来的位置正好是空的。而A1碎片也刚...

weixin_30314631的博客 304

Python爬虫实战:逆向解析天猫商品详情API,精准捕获规格、SKU与促销活动

及浏览器开发者工具),绕过前端渲染的复杂性,直接逆向分析并调用其内部数据接口,从而高效、稳定地抓取商品的关键信息,包括商品规格、多维度SKU信息以及复杂的促销活动。print(f"SKU ID: {sku.sku_id}, 价格: ¥{sku.price}, 库存: {sku.stock}, 规格: {sku.props}")当你访问一个商品链接时,浏览器首先会加载一个几乎为空的HTML骨架,然后通过执行大量的JavaScript代码,向后台服务器发起多个异步请求,最终将获取到的数据填充到页面中。

2201_76125261的博客 1129

POJ 1033 磁盘文件碎片整理 模拟题 栈应用

以后一定要细心,不能再犯这个低级的错误,把WA控制在最低范围内 参考了 http://www.cnblogs.com/damacheng/archive/2010/09/24/1833983.html的题目分析 题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占用K个簇,(1   文件1:2 3 11 12,占用了4个簇,编号为1-4。   文件2:7,占

Coding for Dreams 2362

PCIe 6.0 – 关于 PCI Express Gen6 您需要知道的一切

幸运的是,PCIe 6.0 FEC 足够轻,对延迟的影响最小。在电气层上,PCIe 6.0 使用 PAM4 信号(“四级脉冲幅度调制”),每个时钟周期将 2 位组合为 4 个幅度级别(00、01、10、11),与 PCIe 5.0 和前几代相比,它使用 NRZ 调制,每个时钟周期 1 位和两个幅度级别 (0, 1)。虽然 PAM4 信号更容易出错,但由于调制技术的性质,与 PCIe 5.0 相比,通道损耗不受影响,因此 PCB 上 PCIe 6.0 信号的范围将与 PCIe 5.0 相同。

qq_43416206的博客 3431

从零学懂车载 TSN(二):802.1AS、Qbv、Qbu 是如何让 Ethernet “按时发送”的?

假设有两台设备: ECU A 认为: 但 Switch B 认为: 如果我们规定: 问题就来了。ECU:Switch:整个调度立即失效。因此 TSN 要做时间调度,第一件事就是:这就是:IEEE 802.1AS 定义时间敏感网络里的:工程中通常会看到:gPTP也就是:generalized Precision Time Protocol可以先简单理解成: 核心表达:所有 TSN 节点使用共同时间。后面抓包时你会经常遇到: 刚入门时不用急着研究每个 bit。先搞清楚它们解决什么问题。两个设备连接: A 需要知

struggle_22_58的博客 49

poj 1033

题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占用K个簇,(1 &lt;= K &lt; N &lt;= 10000),给出各个文件的占用磁盘的情况,也就是一个文件占用了哪些簇,想要进行碎片整理,就是把这些簇按顺序整理到磁盘的最顶部,例如给出示例:文件1:2 3 11 12,占用了4个簇,编号为1-4。  文件2:7,占用了1个簇,编号为5。   文件3:...

一颗平常心 171

Tessent ATPG Flow 流程 (代码和注释)

**摘要:Tessent ATPG流程分为五个阶段:1) 环境初始化(加载设计文件、库和扫描链配置);2) DRC规则检查(验证设计可测试性并修复违例);3) ATPG向量生成(设置故障模型并运行引擎优化覆盖率);4) 向量验证与后处理(仿真验证并生成ATE格式文件);5) 进阶操作(多电压域和存储器测试)。流程输出包括测试向量、覆盖率报告和验证日志,支持stuck-at和transition故障模型,使用Tcl脚本控制。关键步骤包含扫描链配置、EDT压缩和覆盖率优化。

QQ_778132974的博客 930

POJ 1033 Defragment

分析转自:http://www.cnblogs.com/damacheng/archive/2010/09/24/1833983.html  题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占用K个簇,(1     文件1:2 3 11 12,占用了4个簇,编号为1-4。   文件2:7,占用了1个簇,编号为5。   文件3:18 5 10,占用了3

iCpC之旅 895

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

POJ 1033

Defragment Time Limit:2000MS Memory Limit:10000K Total Submissions:4990 Accepted:1752 Case Time Limit:1000MS Special Judge Description You are taking part in the d...

fengzhizi76506的博客 253

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

poj 1033 Defragment 解题报告

距离从1000处子题,已经过了好些日子了,终于突破20题了,但是还没有进入前1W(中国的人真多啊),一直在做动态规划的题,实在是被动态规划的强大折服。最近开始找些搜索的题来做,剪那个sticks,一直剪不过TLE,于是决定换道题,看网上的推荐说这是一道搜索题,于是开始切!~~~ 题意:磁盘整理,按照从第一个文件到最后一个文件的顺序排放,而且每个文件的碎片按原来的顺序放在一起,要求转移的

边技术边生活 2038

poj 1033 Defragment——(搜索?)

转载于:https://www.cnblogs.com/damacheng/archive/2010/09/24/1833983.html Defragment Description You are taking part in the development of a “New Generation” operating system and the NG file system. In this file system all disk space is divided into N clusters

five_east_west的博客 502

poj 1033 Defragment

题解转自:http://www.cnblogs.com/damacheng/archive/2010/09/24/1833983.html 题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占用K个簇,(1 <= K < N <= 10000),给出各个文件的占用磁盘的情况,也就是一个文件占用了哪些簇,想要进行碎片整理,就是把这些簇按顺序整理到磁盘...

weixin_30702413的博客 120

POJ1033

Defragment Time Limit:2000MS Memory Limit:10000K Total Submissions:2938 Accepted:993 Case Time Limit:1000MS Special Judge Description You are taking part ...

weixin_33724046的博客 70

POJ1033-Defragment

Defragment Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 4298   Accepted: 1478 Case Time Limit: 1000MS   Special Judge Description You are taking

wang_128的博客 550

poj1033 模拟(dfs)

题意:磁盘有n个块,有m个文件,每个文件被分割为多个块分散在磁盘中,现进行磁盘整理,要求使用最少的移动次数,使得第1个文件占用1,2,3..f1个块,第2个文件占用f1+1,f1+2...f1+f2个块。   算法:模拟,使用dfs实现  #include #include using namespace std; int move[10010]; // move[i

aidway的专栏 500

POJ 1033 / Northeastern Europe 1998 Defragment (模拟&队列)

Defragment http://poj.org/problem?id=1033 Time Limit: 2000MS Memory Limit: 10000K Case Time Limit: 1000MS Special Judge Description You are taking part in the development

AC,∑ndless 1420
上一篇: poj1027 模拟
下一篇: poj1037 DP
琴空
博客等级 码龄16年 48粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值