poj2182 逆推暴力
题意
告诉有n头牛,每头牛有一个编号1~n,再一次烂醉之后,奶牛们没有按照编号排队;告诉你对于第i头奶牛,在它之前有多少头奶牛比它的编号小(i>1,因为第1头奶牛的数据永远为0,故题中省略),求每头奶牛的编号
从后往前推,对于第 i 头奶牛,所给数据 num[ i ] 表示它在前 i 头奶牛中排名第 numj[ i ]+1;又由于第 n 头奶牛的数据表示它在所有 n 头奶牛中排名第num[ i ]+1,故可求出第 n 头奶牛的编号;同理,在求出第 n 头奶牛的编号后,第 n-1 头奶牛的数据 num [ i ]表示在除第 n 头奶牛外的所有奶牛中排名第 num [ i ]+1 ,又因为第 n 头奶牛的排名已求出,由此可推出第 n-1 奶牛的排名;
代码实现如下
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
namespace zi_qilin
{
const int maxn=+;
int n;
int a[maxn],ans[maxn];
vector<int> cow;
inline int read()
{
char c;while(scanf("%c",&c)&&!isdigit(c)) ;
int x=c-'';while(scanf("%c",&c)&&isdigit(c)) x=x*+c-'';
return x;
}
inline int work()
{
n=read();a[]=;
for(int i=;i<=n;i++) a[i]=read();
for(int i=;i<=n;i++) cow.push_back(i); //初始化i头奶牛的编号
for(int i=n;i>=;i--)
{
ans[i]=cow[a[i]]; // ans[i]表示第 i 头奶牛的编号,就是在vector剩余的编号中排名第a[i]的(vector从0开始下标,故此处未+1)
cow.erase(cow.begin()+a[i],cow.begin()+a[i]+);// 在此头牛的编号被求出后,从vector中删去,下一头奶牛i-1在此操作后即可直接通过下标查找到除此奶牛外排名第
// num[i-1]+1的编号
}
for(int i=;i<=n;i++) printf("%d\n",ans[i]);
} }
int main()
{
//freopen("try.in","r",stdin);
return zi_qilin::work();
}
poj2182 逆推暴力的更多相关文章
- UVA116Unidirectional TSP(DP+逆推)
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18206 题意:M*N的数阵,从左边一列到右边一列走过的数的和的最小.并输出路 ...
- HDU 5844 LCM Walk(数学逆推)
http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意: 现在有坐标(x,y),设它们的最小公倍数为k,接下来可以移动到(x+k,y)或者(x,y+k).现 ...
- hdu 5063 操作逆推+mul每次要*2%(modo - 1)
http://acm.hdu.edu.cn/showproblem.php?pid=5063 只有50个询问,50个操作逆推回去即可,注意mul每次要*2%(modo - 1)因为是指数! #incl ...
- uva10537 dijkstra + 逆推
21:49:45 2015-03-09 传送 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8& ...
- hdu 3853 LOOPS (概率dp 逆推求期望)
题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Tota ...
- UVA 10537 Toll! Revisited (逆推,最短路)
从终点逆推,d[u]表示进入u以后剩下的货物,那么进入u之前的货物数量设为y,d[u] = x,那么y-x=ceil(y/20.0)=(y-1)/20+1=(y+19)/20. (y-x)*20+r= ...
- HDU 1176-免费馅饼(DP_逆推)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- Codeforces Round #499 (Div. 2) C.FLY 数学推导_逆推
本题应该是可以使用实数二分的,不过笔者一直未调出来,而且发现了一种更为优美的解法,那就是逆推. 首先,不难猜到在最优解中当飞船回到 111 号节点时油量一定为 000, 这就意味着减少的油量等于减少之 ...
- C# Net 计算周(可正推和逆推)
C# Net 计算周(可正推和逆推) 拷贝代码(方法): /// <summary> /// 计算周 /// </summary> /// <param name=&qu ...
随机推荐
- Postman—脚本介绍
前言 Postman包含一个基于Node.js的强大的运行时环境,它允许我们为请求和集合添加动态行为.这使的我们可以编写测试用例,构建可包含动态参数的请求,在请求之间传递数据等等. 我们可以在流程中以 ...
- NiftyDialogEffects-多种弹出效果的对话框
感觉系统自带的对话框弹出太生硬?那就试试NiftyDialogEffects吧,类似于(Nifty Modal Window Effects),效果是模仿里面实现的 ScreenShot . . ...
- sersync+rsync=实时异步备份
环境准备 服务器两台 rsync-server:192.168.1.8 (备份服务器) sersync-node1:192.168.1.9 (需要备份的服务器) 系统 CentOS7.4 关闭防火墙 ...
- HDFS:分布式文件系统
HDFS是GFS的简化版,它同一时刻只允许一个用户对同一文件进行追加写操作(GFS允许并发写).它适合存储大文件,并提供高吞吐量的顺序读/写访问. 它的早期版本两大问题,例如:单点失效和水平扩展不佳. ...
- Ionic项目中如何使用Native Camera
本文介绍如何在ionic项目中使用设备的camera. Ionic版本:v3.2.0 / 2017-05-10 / MIT Licensed / Release Notes ============= ...
- 【手记】解决启动SQL Server Management Studio 17时报Cannot find one or more components...的问题
刚装好SSMS 17.1准备体验,弹出: 一番搜索,普遍办法都是安装VS2015独立shell.删除某个注册表项什么的,没用,首先这个shell我是装了的,然后也没有那个注册表项.我自己尝试过重装sh ...
- Action Bar
1.显示隐藏Action Bar 1.配置上 在application 上的 android:theme="@style/AppTheme"全局配置ActionBar在某个acti ...
- F#注解
不要问我为啥要学F#——因为气质摆在那里 标注:以下内容均来自 anderslly F#系列 1.类型推演 let square x = x * x //接受一个某类型参数的quare函数返回一个这个 ...
- Spring Boot学习笔记(八)使用jar和war方式打包并在外部Tomcat中部署运行
使用war包的方式发布到外部Tomcat中去 首先修改pom.xml中的配置,使打包方式设置为war包的形式 然后 maven update project 更新下项目 Application入口文件 ...
- Java基础——JDBC
今天学习的内容是:JDBC 通常jdbc连接分6步: 1)注册驱动: 2)建立连接: 3)创建Statement: 4)执行sql 语句: 5)处理结果集(若sql 语句为查询语句): 6)关闭连接. ...