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

Автор MikeMirzayanov, 15 лет назад, перевод, По-русски
Добро пожаловать и удачи на раунде!

Напоминаю, что если у вас возникают вопросы по задачам, то лучше всего использовать веб-интерфейс их посылки со страницы задач.

Позже в этом же посте мы будет обсуждать прошедший раунд.

Желаю высокого рейтинга,
MikeMirzayanov.

UPD. Спасибо за контест надо говорить команде Saratov SU #5, а именно пользователям FeferGerald и Polichka.

UPD2. ...И лучше поздно чем никогда: наличием английских вариантов текстов условий мы обязаны исключительно пользователю Julia. Большое ей спасибо за 8 великолепных переводов 8 раундов соревнований Codeforces.
  • Проголосовать: нравится
  • +22
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Admin, Please release the Test Data??
  It is very tough for me think of all the test cases....
  • 15 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится
    If it's tough for you, find more easy challenge then.
    Do you know any contests with test cases release?
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Yes. TopCoder.
      • 15 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Hm, yeah, I didn't think about TopCoder. Sorry then.
        But anyway, there's more sense to proceed solve problems in practice room without knowledge of the test cases, in my opinion.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Hm... Let me think... Like IOI, TopCoder, COCI, USACO and pretty much everything IOI-style...
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        OK, I agree.
        But this competition is in ACPC style and in this way organizers hide test cases even after the end of the competition.
        • 15 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится
          Well, in ICPC you also can't view other person code, I guess. But here, you can download Petr's solution and just randomize cases until you find a non-working case on your code (I tihnk, that's gonna happen not so rarely). So, it will just make possible task simplier to release test cases after the contest.
          • 15 лет назад, # ^ |
              Проголосовать: нравится +1 Проголосовать: не нравится
            Hi, where I can download Petr's solutions?
            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Enter contest -> Click on a number, showing how many users solved this task -> Click on any submission number

              It seems, that you can't scroll through all submissions, but you will find some "Accepted" for sure.
              • 15 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                i thnk now no one (except admin) can get "petr"'s solution(i have checked each sort option)

                showing solution in this way is not quiet uncomfortable to access...

                it shud be accesible through STANDING page.....

                so that everyone can see the solution of high rankers comfortably...(well that another kind of sort i think....... :) )
                • 15 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Actually you can view Petr's solutions, check this out:
                  http://codeforces.net/contest/8/status/B?order=BY_ARRIVED_ASC
                  • 15 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    sorry I forgot mentioning....

                    actually i was searching for problem A...... :)
                    • 15 лет назад, # ^ |
                        Проголосовать: нравится 0 Проголосовать: не нравится
                      http://codeforces.net/contest/8/status/A?order=BY_ARRIVED_ASC
                      You can view any problem, just append order=BY_ARRIVED_ASC manually to the URL.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      I am a fan of constructive argumentation; I would, therefore, be happy to learn some advantages of not releasing official test data. Until that I support all the frustrated coders who just can't find bugs in their solutions. Contest is one thing, but in my opinion the process of practice would only benefit if test data was available - whether one decides to use it or not, it is totally his/her responsibility and choice of training techniques.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        You can view accepted solutions and compare them with your one. It's useful excercise.

        What does Mikhail Mirzayanov think about test data release?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I think that open test would be useful.

    Especially when an error is in technical details e.g. array sizes etc.

15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
why can the problem C shows out the PE error?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Same problem here. Any ideas on why the PE for problem C test 5?
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      It is not differ much from WA.

      Solution returned some time T, and some order P.

      PE returned when total time, needed to collect objects in order P differ from time T.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      It also happened to me. It was path reconstruction.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Thanks Fefer and Enric, got AC now.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          hi~can you tell me how did you solved the PE problem on test 5?
          i've been stuck at it for more than 2 hours...and can't find my problem...
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            In my case, it was that my program first attempted to pick up a pair of objects, and recorded the best option, and afterwards when it tried picking up only one and found a better solution, it forgot to say "only pick up one" and so the order it output was wrong.
15 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Really liked the problems, but 1 geometry would be really enough :)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
i think this time,the judge is too terrible:(
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Может быть было бы лучше если бы для участников 1 дивизиона был отдельный рейтинг, для 2 див. отдельно. А рейтинг можно оставить.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    Codeforces Beta Round #7:
    С сегодняшнего контеста рейтинг по дивизионам для общих контестов будет считаться отдельно по двум таблицам положений участников. То есть подсчет рейтинга будет эквивалентен проведению двух контестов отдельно для каждого дивизиона по общим задачам.

    Ты про это спрашивал?
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      А так вот оно что.

      А то я уже заметил некоторую странность в подсчете рейтинга.

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

      А на стыке двух дивизионов получается такая вещь.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Just like in the TopCoder.
      • 15 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        Но на топкодере то хотя бы контесты разные проводят, а то когда один контест и один монитор получается по-моему странно.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Спасибо..... Я не знал
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
It's a pity that testing problem isn't fully solved... Especially it felt at the end of the round, where appeared a huge queue of problems to test.
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Petr is Red now.
The Red is the color of other contestants' blood. =) =)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Could you please post the 9-th test for the B problem? :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    I think the 9th case consist of something like this,
    UURRDL

    Here the answer should be "BUG", but if you don't check the adjacent squares, you'd get "OK".
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
please provide the #Test9 for A - Train and Peter
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
I think its better check out a fine solution and find your own mistake.
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
how can i turn the pages in the status?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
По-моему рейтинги обновились ещё до того, как закончилось тестирование всех решений. Это нормально?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    Может всех решений, отправленных с контеста? (до 21:45)

  • 15 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится
    Неправда ваша. Как только дотестировались контестные сабмиты - сразу рейтинг и обновили. 
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Who wants to see a Petr in a train? =)
15 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
There are some odd effects with ratings. For example, before contest I was in Division 2, solved 2 problems and now I have rating 1603. MRoizner was in Division 1, solved 3 problems and now has rating 1567. It seems a little bit strange.  =)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    It's all right. He solved problems worse than average participant of his 1st div.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    What's the different between Div 1 and Div 2?
    I am a new for Codeforces.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Non-rated users (newbies) or those having less than 1500 rating points belongs to second division. Others ( >= 1500 rating ) belongs to first division.

      By the way at first contest you have rating 1500 and have changes with it participating in second division.

15 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится
Thanks for the nice problems!

Although when I submitted D for the second time, I was almost completely sure it will fail again, since there're too many if's :)
15 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Hi.  Is it possible to have a public Google Calendar with the match times updated on it?  This saves me trouble of converting between Moscow and New York time all the time ;)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А уже были предложения сделать графики рейтинга для каждого участника? И кто-нить предлагал делать статистику по странам? :)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
still WA on problem B...

I've considered situations like UURD... 
and I used a BFS.

But always get WA on the 1st Test....

any help?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    You can use hash……I AC it with a map[230][230].
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    no cycle,and bfs
  • 15 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    http://codeforces.net/blog/entry/259#comment-2894

    galymzhan:

    Problem B doesn't need BFS. I solved it in linear time using followin approach:
    set all f[201][201] = 0;
    set f[100][100] = 1; // start location
    simulate moving and for each new location f[x][y], check the sum of four adjacent cells. If the sum > 1 then answer is BUG.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      UP
      me too.I solve it without bfs.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      nice algorithm
      But my method should not be wrong =.=
      still can't find my error...
      Maybe I should wait till test cases are released. :(
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Does the test UD gets a BUG?
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          yep...I tried this.

          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Hey, I solved mine like your idea exactly and the same problem ...but i think there is something wrong in the judge.have a look in my BFS function and got AC when i add that line , have a look:

            #include <iostream>
            #include <queue>
            #include <memory.h>
            using namespace std;
            #define pb push_back
            #define rep(i,m) for(int i=0;i<m;i++)
            #define mem(a,b) memset(a,b,sizeof(a))
            #define mp make_pair
            typedef vector<int> vi;
            typedef vector<vector<int> > vii;
            typedef long long ll;
            #define oo ((int)1e9)
            int arr[1001][1001];
            int vis[1001][1001];
            int dx[]={0 , 1 , 0 , -1};
            int dy[]={1 , 0 , -1 , 0};
            int BFS(int ii , int jj){
            queue<pair<int , pair<int , int> > > q;
            q.push(make_pair(0 , make_pair(500 , 500)));
            vis[500][500] = 1;
            while(!q.empty()){
            int j = q.front().second.first , k = q.front().second.second , len = q.front().first;
            q.pop();
            if(ii == j && k == jj)return len;
            rep(i , 4)
            {
            if(arr[dx[i]+j][dy[i]+k] == 0 || vis[dx[i]+j][dy[i]+k])continue;
            q.push(make_pair(len+1 , make_pair(dx[i]+j, dy[i]+k)));
            vis[dx[i]+j][dy[i]+k] = 1;
            }
            }
                 cout << "It will never cout this !!" ;
                 return 0; // without this line it will get WA in test case 1 , Now AC
            }
            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              thx a lot...but that's not my problem .
              I will try to rewrite this problem again...maybe there are some small flaws in my program, though I tried thousands times to make sure it won't :D

              BTW: It's not the problem about the judge. 
              the line: "return 0; "
              gives the operation a signal that the program ends correctly.
              otherwise the operating system on the server would think this program has some wrong, because no signal inform it that the program is right. 

              • 15 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                The return 0 is not in the main, its in a function I call. Also control never reaches this statement (Thats why I added a cout before it to double check). 
                It compiles successfully at the judge? Why should not work?
                • 15 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  so sorry that I didn't read your post carefully...
                  and I added that line, finally got AC.
                  Thank you so much, and now I understand the reason...because maybe the BFS can't find a route.
                  ^_^

                  and, sorry again.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Could anyone explain how to solve problem C, please ? Is it greedy ?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    dp
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    dp(S), which has 2^n states, the cost of visiting all the vertices s_i in the set S.
    Then, you can just visit one node, or two. This leads us to a n^2*2^n algorithm, which is too slow.

    Coding it in n*2^n using the fact that you can start from the first element in the set should be enough. When you visit just one vertex do one recursive call, and when you have to visit a pair of vertices just iterate on the second one (you can choose s_1 always as the first one). Precalculating distances in an array may also be useful.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Thanks for the contest :) It was my first contest here. Problem C seemed to be killing problem for me. I've got TLE #12 too many times. Finally I found out that I can make it N-times faster and finally got Accepted.
15 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

UPD: And many thanks to Julia for her devoted help in translating the 8th round in a row.

Not modest, but true...

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

Can anyone tell me what can be bug with WA 6 in problem C?

  • 9 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    Seriously, can anyone tell me what is the test case #6? I really want to know.

    • 9 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Still remember this problem. I only glanced at your code, so I can be wrong, but here is something that I really don't think should be in there:

      if(n%2==0){
              for(int i=2;i<=n;i+=2){
      

      The oddity of the number of the objects does not matter, also you I don't think you want to jump 2 objects at a time. It looks like you are trying to make as many groups as possible, when in fact some objects are better left alone. (Precisely, pairing up any 2 objects which make an obtuse angle with the purse will only increase the distance, given how it's calculated in this task).

      Consider a bitmask dp where you either pick the leftmost zero alone or in a group with any other zero.

15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Не нашел где запостить предложение, напишу здесь. Почему последние 3 раунда для див 1 (включая грядущий 10) в одно и то же время, 19.45 по Москве? Я думаю, что многие из сибирских и дальневосточных участников (а также китайских, например) не смогут участвовать  - это допоздна контест получается.
Я понимаю, что всем не угодишь, но может давайте попробуем менять времена проведения, в том числе чтобы и сибирские участники не обламывались?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Владивостоку, конечно, неудобно. Но большой части сибирских участников, думаю, что нормально. Не думаю, что время с 23 до 1 ночи самое плохое (а у многих все и пораньше). В Пекине тоже получается с полуночи до 2х ночи - поздно, но поучаствовать можно.

    Следует учесть, что проведение раундов должно согласовываться с дневной занятостью команды Codeforces. Однако, спасибо за сигнал - попробуем куда-нибудь как-нибудь подвинуть.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Со своей стороны хочу заметить, что 19.30-19.45 - оптимальное время. Как раз успеваешь прийти домой с работы, поесть и сразу писать. :) Контесты, проводимые в будни днём или ночью, писать не удаётся. :(

      P.S. я высказал всего лишь свою точку зрения. Много видел комментарии недовольных временем проведения, хотя не такое уж и  плохое время... :)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Why for problem C time n * 2 ^ n is good?
24 * 2 ^ 24 = 402653184 - is not pass into 7,5 second
Who can explain me, where I wrong?

P.S. I understand Russian
»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

(C.Looking for Order) My solution gets TL 18. It is working O((2^n) * n), I think it's OK for 4 sec. Can somebody help me?