Блог пользователя khanaleemullah

Автор khanaleemullah, 13 лет назад, По-английски

today i attended the codeforces division 2 169 and came across this question.. http://mirror.codeforces.com/contest/276/problem/C I saw most of the red and yellow coder used the logic..

for(int i=0;i<k;i++){ cin>>x1>>x2; arr[x1-1]++; arr[x2]--; } for(int i=0;i<n;i++) arr[i]+=arr[i-1];

I was really shocked and I am unable to understand how so many of people knew this technique.. Is this any standard algorihtm or something??..

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Well, it is called delta encoding.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Кто-нибудь знает материал об этом на русском языке?

  • »
    »
    13 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится +4 Проголосовать: не нравится

    Нормального материала по применению таких техник в СП вроде как и нет. До них либо додумываются самостоятельно, либо узнают у более опытных товарищей.

    В-общем, чтобы понять подобные вещи, просто решай побольше задач. Проверено на собственном опыте :).

    UPD. И читай чужие решения.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Second cycle starts from 0, but index i — 1 uses. Here's might be problems. I guess it better starts from 1.