题目:圆桌会议

打印 上一主题 下一主题

主题 777|帖子 777|积分 2331

Problem - 1214 (hdu.edu.cn)


解题思绪:
        效果的次序就是原序列的逆序,比方12345就是54321为效果次序。同时将一个次序序列(非环)变成逆序必要的次数为
。想要的得到最短的互换次数,只必要将环尽量对半分,然后分别对两部分进行次序序列变逆序次数的计算,再将两部分次数相加即可。(ps:只有尽量对半分,才能使得逆序所需次数最少,3:7之类都是不行的)


AC代码:
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int slove(int n){
  4.         return n * (n - 1) / 2;
  5. }
  6. int main()
  7. {
  8.         int n;
  9.         while(cin >> n){  // 题目没有输入样例次数
  10.                 cout << slove(n/2) + slove(n - n / 2) << '\n';
  11.         }
  12.         return 0;
  13. }
复制代码

知识点:
        头脑题,数学

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表