【联想小新 pro14】关于电脑睡眠三小时后自动关机这件事儿


前言

在我买了一台新电脑后,我发现了个问题,睡眠后的电脑长时间后就唤醒不了了,我之前一直以为是关机了,因为电源键上的呼吸灯不再闪烁,按任何键也没有反应,之后也猜到可能是在休眠?但从来没开启过呀。在我不断的尝试下,我终于知道如何关闭它了!


解决方案

1.点开设置,选择电源与睡眠,相关设置,点开其他电源设置 。

在这里插入图片描述

2. 点击 更改计算机睡眠时间。

在这里插入图片描述

3. 点击 更改高级电源设置。

在这里插入图片描述

4.点击 睡眠选项 > 在此时间后休眠 > 永不。

在这里插入图片描述

好的,以下是用 C++ 解决 Knapsack 背包问题的代码,分别实现了上述要求的 1~4 步骤: ```cpp #include <iostream> #include <fstream> #include <vector> #include <algorithm> #include <numeric> #include <random> struct Item { int id; int weight; int profit; double value; bool operator<(const Item& other) const { return value > other.value; // 按单位重量的价值由大到小排序 } }; int capacity; // 背包容量 std::vector<Item> items; // 物品列表 // 初始化物品列表 void InitItems(int n) { items.resize(n); std::default_random_engine rng(std::random_device{}()); std::uniform_int_distribution<int> w_dist(1, 20); std::uniform_int_distribution<int> p_dist(10, 30); for (int i = 0; i < n; i++) { items[i].id = i + 1; items[i].weight = w_dist(rng); items[i].profit = p_dist(rng); items[i].value = static_cast<double>(items[i].profit) / items[i].weight; } std::sort(items.begin(), items.end()); } // 打印物品列表 void PrintItems(const std::string& filename) { std::ofstream ofs(filename); ofs << "物品列表:" << std::endl; ofs << "编号\t重量\t价值\t单位重量价值" << std::endl; for (const auto& item : items) { ofs << item.id << "\t" << item.weight << "\t" << item.profit << "\t" << item.value << std::endl; } ofs.close(); } // 计算初始解 int InitProfit() { int total_weight = 0; int total_profit = 0; for (const auto& item : items) { if (total_weight + item.weight > capacity) { break; } total_weight += item.weight; total_profit += item.profit; } return total_profit; } // 计算上界值 double Bound(int i, int w, int p) { if (w >= capacity) { return p; } double bound = p; int j = i + 1; int total_weight = w; while (j < items.size() && total_weight + items[j].weight <= capacity) { bound += items[j].profit; total_weight += items[j].weight; j++; } if (j < items.size()) { bound += (capacity - total_weight) * items[j].value; } return bound; } // 回溯搜索 void Backtrack(int t, int w, int p, int& bestp, std::vector<int>& solution) { if (t >= items.size() || w >= capacity) { if (p > bestp) { bestp = p; solution = std::vector<int>(items.size(), 0); for (int i = 0; i < t; i++) { solution[items[i].id - 1] = 1; } } return; } double bound = Bound(t, w, p); if (bound < bestp) { return; } Backtrack(t + 1, w, p, bestp, solution); Backtrack(t + 1, w + items[t].weight, p + items[t].profit, bestp, solution); } int main() { int n = 11; capacity = std::accumulate(items.begin(), items.end(), 0, [](int acc, const Item& item) { return acc + item.weight; }) * 4 / 5; InitItems(n); PrintItems("Knapsack.txt"); int bestp = InitProfit(); std::vector<int> solution(items.size(), 0); Backtrack(0, 0, 0, bestp, solution); std::ofstream ofs("Knapsack.txt", std::ios_base::app); ofs << "背包容量:" << capacity << std::endl; ofs << "初始解:" << bestp << std::endl; ofs << "最优解:" << bestp << std::endl; ofs << "最优方案:["; for (int i = 0; i < solution.size(); i++) { ofs << solution[i]; if (i < solution.size() - 1) { ofs << ", "; } } ofs << "]" << std::endl; ofs.close(); return 0; } ``` 其中,第 5 步骤的实例已经在代码中实现,最终输出结果保存在 Knapsack.txt 文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值