日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

poj1033

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj1033 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模擬題,注意不需要移動的情況要特殊輸出

#include <cstdio> #include <cstring> #include <cstdlib> using namespace std;#define MAX_CLUSTER_NUM 10005int cluster_num, file_num; int link[MAX_CLUSTER_NUM]; bool is_free[MAX_CLUSTER_NUM]; int total_length; bool optimized;void input() {memset(link, -1, sizeof(link));scanf("%d%d", &cluster_num, &file_num);for (int i = 0; i < cluster_num; i++)is_free[i] = true;int target_pos = 0;total_length = 0;for (int i = 0; i < file_num; i++){int file_part_num;scanf("%d", &file_part_num);total_length += file_part_num;for (int j = 0; j < file_part_num; j++){int original_pos;scanf("%d", &original_pos);original_pos--;link[target_pos] = original_pos;target_pos++;is_free[original_pos] = false;}} }int drag(int start_point, int end_pos) {optimized = true;int next_point;while (link[start_point] != end_pos){next_point = link[start_point];printf("%d %d\n", next_point + 1, start_point + 1);link[start_point] = -1;is_free[start_point] = false;is_free[next_point] = true;start_point = next_point;}return start_point; }void work() {optimized = false;for (int i = 0; i < total_length; i++)if (is_free[i])drag(i, -1);for (int i = 0; i < total_length; i++){if (link[i] != -1 && link[i] != i){printf("%d %d\n", i + 1, total_length + 1);is_free[i] = true;is_free[total_length - 1] = false;int last_pos = drag(i, i);link[last_pos] = -1;printf("%d %d\n", total_length + 1, last_pos + 1);is_free[last_pos] = false;is_free[total_length - 1] = true;}}if (!optimized)printf("No optimization needed\n"); }int main() {input();work();return 0; } View Code

?

轉載于:https://www.cnblogs.com/rainydays/p/3265433.html

總結

以上是生活随笔為你收集整理的poj1033的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。