zoukankan      html  css  js  c++  java
  • Lost Cows POJ 2182 思维+巧法

    Lost Cows POJ 2182 思维

    题意

    是说有n头牛,它们身高不一但是排成了一队,从左到右编号为1到n,现在告诉你从第二号开始前面的那些牛中身高小于它的个数,一共有n-1个数。然后求出它们按照身高来排序的话从低到高编号会是多少。

    解题思路

    首先我们需要从它给的数据逆序来进行处理,为什么,比如倒数第一个数据是0的话,说明前面没有比它矮的牛,那么它的编号就是1,然后倒数第二个是2的话,就是说前面有两个比它矮,因为1号已经有了,所以他就是4号,后面以此类推。

    根据这个思路我们就可以进行模拟(或者说暴力来进行解决),当然也可以使用线段树或则树状数组来进行优化。

    这里还有一种算法,是基于冒泡排序的,是hxr大哥想到的,真是tql。

    代码实现

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn=8e5+7;
    int a[maxn], vis[maxn];
    int n;
    int main()
    {
    	scanf("%d", &n);
    	for(int i=2; i<=n; i++)
    	{
    		scanf("%d", &a[i]);
    	}
    	int t;
    	for(int i=n; i>=1; i--)
    	{
    		t=a[i]+1;
    		for(int j=1; j<=t; j++) //这是在剩下的数中查找第t小的数
    		{
    			if(vis[j]==1)
    				t++;
    		}
    		a[i]=t;
    		vis[t]=1;
    	}
    	for(int i=1; i<=n; i++)
    	{
    		printf("%d
    ", a[i]);
    	}
    	return 0;
     } 
    

    冒泡排序法

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream> 
    using namespace std;
    const int maxn=8e3+7;
    int a[maxn], id[maxn];
    int num[maxn];
    int n;
    int main()
    {
    	cin>>n;
    	a[1]=0;
    	id[1]=1;
    	for(int i=2; i<=n; i++)
    	{
    		cin>>a[i];
    		id[i]=i;
    	}
    	for(int j=1; j<n; j++)
    	{
    		for(int i=1; i<n; i++)
    		{
    			if(a[i]>=a[i+1])
    			{
    				a[i]++;
    				swap(a[i], a[i+1] );
    				swap(id[i], id[i+1]);
    				//for(int t=1; t<=n; t++) cout<<a[t]<<" "; cout<<"
    ";
    				//for(int t=1; t<=n; t++) cout<<id[t]<<" "; cout<<"
    ";
    				//system("pause");
    			}
    			
    		}
    	}
    	for(int i=1; i<=n; i++)
    		num[id[i]]=i;
    	for(int i=1; i<=n; i++)
    	{
    		cout<<num[i]<<endl;
    	}
    	
    	return 0;
     } 
    
    欢迎评论交流!
  • 相关阅读:
    DFS迷宫递归所有路径 新手入门
    【翻译】Ext JS最新技巧——2016-3-4
    Android进程通信之一:两种序列化方式
    Ext JS 6应用程序Build后出现“c is not a constructor return new c(a[0])”的处理
    简约才是王道? CardView 的使用
    经过一段的努力,终于成为CSDN博客专家,感谢大家支持
    ACM_Uppercase(水题)
    ACM_01背包
    2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛-B-precise math function
    goj N皇后问题
  • 原文地址:https://www.cnblogs.com/alking1001/p/11415748.html
Copyright © 2011-2022 走看看