UVALive 3220 Heapsort 构造题

原创 2013年12月05日 17:05:01


这一个月,算上四场13年的现场上做了大约15场左右。周日,今年的最后一场


TheLastStand的一题,题意是基于堆排序的构造题,倒着推每个点就行,以次得到val值为n-1的id


UVALive 3220 Heapsort

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<queue>
#include<string>
#include<map>
#include<set>
#define REP(i, n) for(int i=0; i<(n); i++)
#define CLR(a, b) memset(a, b, sizeof(a))
#define LL long long
using namespace std;

const int maxn = 51000;
int id[maxn];
int val[maxn];
int n;
int now;
void get(int x)
{
    int idx = id[1];

    vector<int>v;
    v.push_back(x);
    while (x != 1) x /= 2,v.push_back(x);

    int sz = v.size();
    for (int i = sz - 1; i > 0; i--)
        id[v[i]] = id[v[i - 1]];

    val[id[1]] = now;
    id[now] = idx;
    swap(id[1], id[now]);
}

int main()
{
    while (~scanf("%d", &n))
    {
        REP(i, n + 1) id[i] = i;

        val[1] = n;
        swap(id[1], id[n]);
        now = n - 1;
        for (int i = n - 1; i >= 1; i--, now--)
            get(i);

        for (int i = 1; i <= n; i++)
            printf("%d%c", val[i], i == n ? '\n' : ' ');
    }
}

一道dp题,先占个坑。

UVALive 3222 Joke with Turtles

【UVALive】7502 Suffixes and Palindromes【根据sa数组以及回文半径数组构造字典序最小的串】

题目链接:【UVALive】7502 Suffixes and Palindromes根据回文半径数组能得出一堆不等相等关系,相等缩点,不等建边。 根据sa数组的对偶数组rank数组的性质,考虑sa...

UVaLive 3708 Graveyard (构造法求解最优化问题)

来源:《算法竞赛入门经典训练指南》第1章例题4、UVaLive 3708、POJ3154 这里只给出确实有一个最优解,其中必定有一个墓碑不动.至于其他的内容,网上茫茫多的解释我也想不出什么更有新意...

UVALive-7304 - Queue of Soldiers 【动态规划】【组合函数】【好题】

UVALive- 7304 - Queue of Soldiers 题目大意:士兵过山洞,必须以类似7 6 5 4 3 2 1顺序过。在第i个人之后,比i高的人都会被杀死,问如果要杀死k个人,有几种...

uvalive 6525——Attacking rooks(二分图匹配,好题!)

Chess inspired problems are a common source of exercises in algorithms classes. Starting with the we...

UVALive-7220 Dungeon Trap【最短路Bfs+思维枚举】好题~

题目大意: 给你一个N*M的地图,其中A是起点B是终点,0表示障碍,其他数字表示走到这个点的花费,我们现在要将没有障碍的地方逐渐放置障碍,直到A不能走到B为止,我们放置障碍得到的价值就是那个点的权值...

UVALive2857 POJ2578 HDU1037 ZOJ2186 Keep on Truckin'【水题】

Keep on Truckin' Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8462   Accepted:...

UVALive 7392 Bundles of Joy【bitset】【类树形DP】【杂题】

sourcehttps://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=710&page...

UVALive 6835 Space Golf(物理题)

题意: n≤10个障碍物,一个球从起点弹到终点距离为d≤10000,反弹次数b≤15,重力g=1n\leq10个障碍物,一个球从起点弹到终点距离为d\leq10000,反弹次数b\leq15,重力...
  • lwt36
  • lwt36
  • 2015年12月08日 01:13
  • 273

UVALive 6913 I Want That Cake【博弈+记忆化搜索】【好题】

题目链接
  • Bcwan_
  • Bcwan_
  • 2016年10月21日 13:42
  • 142

uvalive2038(树形DP基础题)

题目大意: 给定一棵树,要求选择尽量少的点,使得没有被选择的点都可以至少和一个已经选择的点相邻。思路: 树形DP。 类似于01背包问题。 树上的结点要么选要么不选。 dp[i][0]表示第i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVALive 3220 Heapsort 构造题
举报原因:
原因补充:

(最多只允许输入30个字)