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

Автор Petr, 13 лет назад, перевод, По-русски
  • Проголосовать: нравится
  • +36
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится
раньше (в советские времена) у меня в топкодеровских проектах был настроен запуск code coverage и генерация HTML репорта через cobertura. я запускал до, или иногда после, сабмита и смотрел красные строки которые не покрываются ни одним из тестов вообще

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

делюсь информацией, но сам понимаешь - желтые таргетам не советчики :))
  • 13 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Ух ты! Это ведь в принципе могло оба бага поймать, если бы еще был conditionals coverage который сказал бы что bx < hblock всегда вычисляется в true когда до него доходит (если такие умные бывают конечно; впрочем если нет, то надо просто писать вложенные ифы вместо || и &&).
  • 13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
    А есть ли какие-то бесплатные code coverage утилиты для C++, которые интегрируются в MS Visual Studio 2008?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Вот бы Вы еще объяснили, как эту штуку настроить. А то генерится пустой html и ниче не получается.
    • 13 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      там более-менее все тривиально.

      - пишется решение
      - запускается "cobertura-instrument", он берет откомпилированные .class файлы и инструментирует их
      - дальше тестируете решение не чем хотите, не забыв указать правильный classpath. поскольку классы инструментированные, вся статистика будет сбрасываться в специальный файл "cobertura.ser"
      - когда закончили тестировать, собственно из этого специального файла можно сгенерировать HTML репорт через "cobertura-report"
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I made more mistakes this round.   >_<

ProblemA : code in Python , the only passed one.

ProblemB : s += pool[i][j]; should be s += pool[j][i];

ProblemC : 1019make the int overflow to negative numbers

ProblemD : repeated using i in the loop: 
for(int i = 1 ; i <= 500 ; i++)
		for(int i = 0 ; i < tryit.length() ; i++)

ProblemE : want to reverse the array , but write these stupid one:
		for(int i = 1 ; i <= n ; i++)
                P
[i] = P[n + 1 - i];

I just learnt a little Python, but it seems I forget how to code in C++.
4 stupid mistakes make me go back to yellow during this wonderful match.

I'm waiting for Friday's contest. 
Good luck everyone! :)
13 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится
Может, вопрос не по теме, но не знаю куда поместить.
Петр, а зачем Вы делаете скринкасты матчей?
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
    Например мне интересно посмотреть, как кодит другой человек, особенно когда код набирается быстрее, чем его успеваешь понимать :) Можно многому научиться, элементам отладки, генерации тестов и т.п. 
    Вопрос почему скринкасты стали реже?
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Потому что стал чаще писать с рабочего ноута, где записывать не хочу.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Это же элементарно интересно.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну не знаю, я посмотрел первые 10 минут, а потом прокрутил в конец на фазу челленджей (смотрел какой-то SRM).
      IMHO, гораздо интересней был отчет с TopCoder Open
  • 13 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится
    Меня как-то попросили, и вроде до сих пор многим интересно смотреть - а моего времени это не занимает совершенно, нажал кнопку в начале и конце. Вот Вы челлендж посмотрели :)

    Плюс мне кажется мне самому будет интересно смотреть через несколько лет. Как фотографии старые.
13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
Yeah i was  surprised to see your today's score. I thought it might not be you!
All the best for next contest.
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Petr, All the best for next contest.
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
I failed on D.I got TL on one of big testcase.
I found solution very quickly but there was not much time remaining ,so I had to rush,my solution was a O(n^2)dp(recursive with memoization ,actually 26*n^2).I tell myself "this is O(n^2)don't even think about TL,just write a correct code",but unfortunately I have  another O(n^2) in each of recursive call so my solution timed out(26*n^4).
There was many way to avoid TL,one trivial way was using a cache,another was using KMP.
Also  if I wrote dp iteratively, probably could see 26*n^4.
P.S: This was my first system failed on CF:(
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
....I go back to yellow too....
I just want to  code the solution quickly and ignore the correctness...