zoukankan      html  css  js  c++  java
  • Codeforces Round #261 (Div. 2)

    A. Pashmak and Garden

    题意:给你两个正方形的顶点坐标,让你求出另两个顶点的坐标

    题解:分情况讨论即可

    代码:

     1 var x1,x2,y1,y2:longint;
     2 begin
     3   readln(x1,y1,x2,y2);
     4   if x1=x2 then writeln(x1+abs(y2-y1),' ',y1,' ',x1+abs(y2-y1),' ',y2)
     5   else if y1=y2 then writeln(x1,' ',y1+abs(x1-x2),' ',x2,' ',y1+abs(x1-x2))
     6   else
     7    begin
     8      if abs(x1-x2)<>abs(y1-y2) then writeln('-1')
     9      else writeln(x1,' ',y2,' ',x2,' ',y1);
    10    end;
    11 end.        
    View Code

    B. Pashmak and Flowers

    题意:给你一个数列,如果从中选2个数,那么这两个数最大差值为多少?有多少种取法可以取到这个最大值?n (2 ≤ n ≤ 2·105).

    题解:考场上扫了一遍数列,记录了4个临时变量mx,mi,w1,w2分别表示当前遇到的最大值,最小值,最大值有几个,最小值有几个

            因为没处理好边界,就是刚开始的2个,结果fst了。。。也可以排一下序,直接输出a[n]-a[1],并且把最大值的个数*最小值的个数输出即可

     1 var n,x,y,w1,w2,t,mx,mi:int64;
     2     i:longint;
     3 begin
     4   readln(n);
     5   mx:=-1;mi:=1000000000;
     6   for i:=1 to n do
     7    begin
     8      read(x);
     9      if x>mx then begin mx:=x;w2:=1;end
    10      else if x=mx then inc(w2);
    11      if x<mi then begin mi:=x;w1:=1;end
    12      else if x=mi then inc(w1);
    13    end;
    14   if mx-mi<>0 then writeln(mx-mi,' ',w1*w2)
    15   else writeln(0,' ',n*(n-1)>>1);
    16 end.          
    View Code

    D. Pashmak and Parmida's problem

    题意:给你一个数列,定义f(l,r,ax)为 满足 l<=k<=r 并且 a[k]=x 的数量,求这个数列中有多少个二元组i,j是的 i<j 并且满足 f(1,i,a[i])>f(j,n,a[j])  n<=10^6  a[i]<=10^9

    题解:因为数很大,数的个数很少,我们可以离散化,这样我们就可以类似桶排从前往后和从后往前各扫一遍求出 f(1,i,a[i])和f(j,n,a[j])

            然后有限制条件 i<j,所以我们使用树状数组求前缀和  从后往前扫 扫到 j 的时候 j之后的g[j]都加上了,我们求 f[i-1]-1的前缀和就是i 对答案的贡献

    代码:

     1 const maxn=1000000+100;
     2 var a,b,rk,s,f,g,ss:array[0..maxn] of int64;
     3     i,n,tot:longint;
     4     ans:int64;
     5 procedure sort(l,r:longint);
     6  var i,j,x,y:longint;
     7  begin
     8  i:=l;j:=r;x:=a[(i+j)>>1];
     9  repeat
    10   while a[i]<x do inc(i);
    11   while a[j]>x do dec(j);
    12   if i<=j then
    13    begin
    14    y:=a[i];a[i]:=a[j];a[j]:=y;
    15    y:=rk[i];rk[i]:=rk[j];rk[j]:=y;
    16    inc(i);dec(j);
    17    end;
    18  until i>j;
    19  if i<r then sort(i,r);
    20  if j>l then sort(l,j);
    21  end;
    22 procedure init;
    23  begin
    24    readln(n);
    25    for i:=1 to n do begin read(a[i]);rk[i]:=i;end;
    26    sort(1,n);
    27  end;
    28 procedure add(x:longint);
    29  begin
    30  while x<=n do
    31   begin
    32    inc(ss[x]);
    33    inc(x,x and (-x));
    34   end;
    35  end;
    36 function sum(x:longint):int64;
    37 var t:longint;
    38  begin
    39  t:=0;
    40  while x>0 do
    41    begin
    42     inc(t,ss[x]);
    43     dec(x,x and (-x));
    44    end;
    45  exit(t);
    46  end;
    47 procedure main;
    48  begin
    49    tot:=0;
    50    for i:=1 to n do
    51     begin
    52       if (i=1) or (a[i]<>a[i-1]) then inc(tot);
    53       b[rk[i]]:=tot;
    54     end;
    55    fillchar(s,sizeof(s),0);
    56    for i:=1 to n do
    57     begin
    58       inc(s[b[i]]);
    59       f[i]:=s[b[i]];
    60     end;
    61    fillchar(s,sizeof(s),0);
    62    for i:=n downto 1 do
    63     begin
    64       inc(s[b[i]]);
    65       g[i]:=s[b[i]];
    66     end;
    67    ans:=0;
    68    //for i:=1 to n do writeln(f[i],' ',g[i]);
    69    for i:=n downto 2 do
    70     begin
    71       add(g[i]);inc(ans,sum(f[i-1]-1));//writeln(f[i-1]-1,' ',sum(f[i-1]-1));
    72     end;
    73    writeln(ans);
    74  end;
    75 
    76 begin
    77   init;
    78   main;
    79 end.  
    View Code

    C. Pashmak and Buses

    题意:有k辆车,有n个学生,问能否给这n个学生安排d天坐车,是的没有两个同学d天都在同一辆车上。 n, k, d (1 ≤ n, d ≤ 1000; 1 ≤ k ≤ 109).

    不会捉。。。

    E. Pashmak and Graph

    题意:n个点,m条边的无向图,请你找出一条最长的路径(可以有环),使的这条路径上的边权严格递增nm (2 ≤ n ≤ 3·105; 1 ≤ m ≤ min(n·(n - 1), 3·105))

    不会捉。。。

  • 相关阅读:
    一个完整的移动端项目的构建步骤——框架搭构1
    简单日历,纯js
    javascript语句语义大全(7)
    微软笔试Highway问题解析
    中国电信翼支付2014编程大赛决赛
    海岛问题
    大数计算
    Dijkstra算法
    Android测试之Keycode
    字符串解析
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/3916300.html
Copyright © 2011-2022 走看看