spoj 227

2024-06-10 17:38
文章标签 spoj 227

本文主要是介绍spoj 227,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

留着

#include <cstdio>
#include <cstring>
#include <cstdlib>#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1const int MAXN = 200010;int pos[MAXN];
int sum[MAXN << 2];// = MAXN*4
int ans[MAXN];
int N, id;void build( int l, int r, int rt )
{sum[rt] = r - l + 1;if ( l == r ) return;int m = ( l + r ) >> 1;// = (l+r)/2build( lson );build( rson );return;
}void Update( int po, int l, int r, int rt )
{--sum[rt];if ( l == r ){id = l;return;}int m = ( l + r ) >> 1;// = (l+r)/2if ( po <= sum[rt << 1] ) Update( po, lson ); // = rt*2else Update( po - sum[rt << 1], rson );  // = rt*2return;
}int main()
{int T;scanf( "%d", &T );while ( T-- ){scanf( "%d", &N );build( 1, N, 1 );for ( int i = 1; i <= N; ++i )scanf( "%d", &pos[i] );for ( int i = N; i > 0; --i ){int addr = i - pos[i]; //还剩几个数Update( addr, 1, N, 1 );ans[i] = id;//printf( "%d\n", id );}printf( "%d", ans[1] );for ( int i = 2; i <= N; ++i )printf( " %d", ans[i] );puts("");}return 0;
}


这篇关于spoj 227的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048829

相关文章

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

【SPOJ】1825 Free tour II 点分治

传送门:【SPOJ】1825 Free tour II 题目分析:敲了两遍。。。 本题是论文题,具体见漆子超论文《分治算法在树的路径问题中的应用》。 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。因

【SPOJ】Triple Sums【FFT】

传送门:【SPOJ】Triple Sums 题目分析: 首先我们不考虑 i<j<k i<j<k这个条件,构造多项式: Y=∑xai \qquad\qquad\qquad Y = \sum x^{a_i} 那么 ai+aj+ak=S ai+aj+ak=S的个数即 xai+aj+ak=S x^{a_i+a_j+a_k=S}的个数,等价于 Y3中xS Y^3中x^S的系数。 然后我们考虑容斥

【SPOJ】【AGGRCOW】

总结:函数之间存在依赖。  然后一处修改了但是忘记修改另外的一处了。。。 #include <iostream>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#inclu

力扣227题详解:基本计算器 II 的多种解法与模拟面试问答

在本篇文章中,我们将详细解读力扣第227题“基本计算器 II”。通过学习本篇文章,读者将掌握如何使用多种方法来解析和计算字符串表达式的值,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。 问题描述 力扣第227题“基本计算器 II”描述如下: 实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式包含非负整数、加号(+)、减号(-)、乘号(*)、除

SPOJ 1825 FTOUR2 - Free tour II (树上点分治)

题目地址:SPOJ 1825 树分治的题果然除了模板题就是金牌题啊。。。这题是一道论文题,想了好长时间。。。。终于过了,,,,注意一个坑点,如果权值全部为负的话,是可以不选任意一条边的,这样权值为0。。。也就是说初始值要设为0。。。 具体看漆子超的论文《分治算法在树的路径问题中的应用》。。 代码如下: #include <iostream>#include <string.h>#inc

SPOJ 1825 Free tour II

论文题: 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。 因为所有子树里包含黑点数最多的路径的包含黑点数len可以O(N)求出,我们按照每棵子树的len从小到大的顺序遍历,这样就能将G和F数组降低一维,以G[ i

SPOJ - QTREE (树链剖分)

基础的树链剖分题目,不过是边权,可以向下映射成点权或者按边剖分。 VIEW CODE #include <iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<algorithm>#include<string>using namespace std;const int mmax=100

spoj 416

又臭又长的烂代码 ...... #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#define maxn 1010using namespace std;char a[1010];int num[10],last;//bool cc(int sum)

spoj 1108

要求输出一个牌的顺序 使每隔1、2、.....、n翻牌后出现1 2 3 4 5 6 7 8 9 .... n 将牌想象成n个空格  正向推 空n个位置放n 循环 需优化 #include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#define maxn 300