Question link: http://acm.hdu.edu.cn/showproblem.php? PID = 1, 1394
Give N, and then give a group of 0 ~ N-1, calculate the number of reverse orders of this sequence, and the minimum value of the number of reverse orders after the exchange. The exchange rules are as follows:
A1, A2,..., An-1, an (where m = 0-the initial seqence)A2, A3,..., An, A1 (where M = 1)A3, A4,..., An, A1, A2 (where m = 2)...An, A1, A2,..., An-1 (where M = N-1)
For example, if w
Link: HDU 1394 minimum inversion number
This is an extension of the smallest reverse order. You can use a tree array. For a sequence of $ N $ numbers $ A $, the number of $ I $ ($ I \ in [0, n) $) the number of reverse orders $ r_ I $ can be expressed as its badge $ I $ minus the number before it and not greater than its number. For example, a [8] = 4 for the number in sequence a =. The number of reverse orders $ r_8 = 8-3 = 5 $, and the second 3 indi
HDU 1394 Minimum Inversion Number (reverse Number of Line Segment trees)
Address: HDU 1394
You can use the line segment tree to calculate the number of reverse orders.
The maintenance information of this question indicates whether each number has been displayed. After each input, the query is performed from the value of the point to n-1. Each time a number is found, because it is found after the number, thi
HDU-1394-Minimum Inversion Number
Http://acm.hdu.edu.cn/showproblem.php? Pid = 1, 1394
The meaning is to give n numbers, calculate their reverse order number, and move the first number to the end each time, then calculate its reverse order number, and find the smallest reverse order number in the n orders
A simple definition of The number of reverse orders: The inversion number of a givennumber sequence a1,
Test instructions: Give the number of n, each time you can move the first number to the last position, ask the nth permutation of the smallest inverse logarithmFirst, we'll find out the logarithm of the first reverse order.Then for a number a[i], a number smaller than it has a[i]-1, a number larger than it has n-a[i]So the a[i] moved to the end of the sequence, the equivalent of the loss of a[i]-1 reverse order number, got n-a[i] the reverse numberFor a total of n-2*a[i] + oneDo another n compar
=1394Title: To a group of numbers, each time you can get the beginning of the number to the end, ask such a sequence of the number of reverse order of the smallest inverse valueTitle Analysis: First Use the tree-like array to reverse the number, the reverse value after each Exchange can be directly calculated, because it is a 0~n-1 arrangement, so the first number (set to FIR) to the last to reduce the number of FIR in reverse order, and this group is sure to have n-fir-1 number is greater than
Title Link: http://acm.hdu.edu.cn/showproblem.php?pid=1394Test instructions: give you a 0-n-1 arrangement, for this arrangement you can put the first element to the last, and ask the number of reverse pairs you might getThe number of reverse pairs of the original sequence is calculated, then the first element is n-1 to the last operation, and the number of reverse pairs of the new sequence can be obtained with O (1) complexity after each operation.The key point of this problem is to find out the
Question address: http://acm.hdu.edu.cn/showproblem.php? PID = 1, 1394
Tree array. I first thought about it, but I didn't think of it:When the number of team heads is placed at the end of the team, the number of reverse orders in the queue may change...
When deducting the number of reverse orders, we forget to subtract the number of new reverse orders!
# Include
Link:
Http://acm.hdu.edu.cn/showproblem.php? PID = 1, 1394
Question:
For a sequence of N numbers A1, A2,..., An, the range of these numbers is 0 ~ N-1, you can move the number of m above to the back to form a new sequence:
A1, A2,..., An-1, an (where m = 0-the initial seqence)A2, A3,..., An, A1 (where M = 1)A3, A4,..., An, A1, A2 (where m = 2)...An, A1, A2,..., An-1 (where M = N-1)What is the minimum number of reverse sequences?
Analysis and Summary
Question Link: Http://acm.hdu.edu.cn/showproblem.php? PID = 1, 1394
Analysis:First, this is the problem of solving the reverse order number. First, we need to know what the reverse order number is?
In an arrangement, if the front and back positions of a pair of numbers are in the opposite order of size, that is, the front number is greater than the back number, they are called a reverse order. The total number of reverse orders in an arrangement is
Question link: http://acm.hdu.edu.cn/showproblem.php? PID = 1, 1394
Solution Report: Give a sequence, find the reverse Number of the sequence, and then move the first number to the last one in sequence. What is the reverse Number of the sequence with the smallest backward number in this process?
One advantage of this problem is that the input sequence must be 0 to n-1, so discretization is not allowed, another benefit is that we can calculate the tota
constant to meet in the 1~m in the number of add in, so the optimal solution is constantly updated. */#include#include#defineM 200010#defineINF 0x3f3f3f3fusing namespacestd;intA[m],sum[m];intMain () {intn,m; scanf ("%d%d",n,m); for(intI=1; i) scanf ("%d",A[i]); intL=1, cnt=0, ans=INF; for(intR=1; r) { if(a[r]1|| A[R]GT;M)Continue; if(!sum[a[r]]) cnt++; SUM[A[R]]++; if(cnt==m) { for(inti=l;i) { if(sum[a[i]]>1) {Sum[a[i]]--; L++; } Else Break;
, from above, a[1]=0.Each subsequent deletion is to repeat the last process, the final left of the person must be in the position No. 0, then you can always push up to find out where the winner begins.1#include 2#include 3 using namespacestd;4 5 Const intMAXN =10005;6 intA[MAXN];7 8 intMain ()9 {Ten intN, K, m; One while(Cin >> n >> k >> m n k m) A { -Memset (A,0,sizeof(a)); - for(inti =2; I ) theA[i] = (A[i-1] + k)%i; - intAns = (A[n-1] + m)%N; -cout 1Endl; -
. Sort the query by the right endpoint from small to large.2. Record the position of each number in the last occurrence. When the number reappears, it removes the count from its last occurrence position.Implementation:The subject is a double pointer.#include using namespacestd;Const intN (1e5+5);intN, M, Q, A[n], pos[n], bit[n], ans[n];voidAddintXintv) { for(; xx);}intSumintx) { intres=0; for(; x; res+=bit[x], x-=x-x); returnRes;}structp{intL, R, id; P (intLintRintID): L (L), R (r), ID (
Minimum Inversion numberTime limit:2000/1000 MS (java/others) Memory limit:65536/32768 K (java/others)Total submission (s): 14879 Accepted Submission (s): 9082Problem DescriptionThe Inversion number of a given number sequence A1, A2, ..., the number of pairs (AI, aj) that SA Tisfy i For a given sequence of numbers a1, A2, ..., an, if we move the first m >= 0 numbers to the end of the seqence, we'll Obtain another sequence. There is totally n such sequences as the following:A1, A2, ..., An-1, an
and, that is, the number of new reverse order. The complexity of time is nlogn.Finally, each number as the first element appears in the sequence of the number of reverse order, to find the minimum value can be easily introduced, each time the number of replacement head, the new number of reverse order (the original number of reverse) minus (the number of numbers) plus (the total number minus the number of the numerical subtraction).#include using namespaceStd;ConstintN =5555;intNum[N2];intHehe[
number of nodes inserted before inserting (if present, it will be reversed with 4) v9=5Insert 2 in the segment tree, asking the interval [2,9] The number of nodes inserted before inserting (if present, it will be reversed with 2) v10=7Add v1+......+v10 = 22, this is the reverse number of 1 3 6 9 0 8 5 7 4 2. is to insert a number into a segment tree, asking for a few more than this number before each insert. is actually asking how many numbers are inserted in a range!#include Copyright NOTICE
title Link: http://acm.hdu.edu.cn/showproblem.php?pid=1394violence (TIME:453MS)#include Segment Tree (TIMES:93MS)#include Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced. HDU 1394 Minimum Inversion Number (violence/Line tree)
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.