He resuelto alrededor de 800 problemas en Codeforces (250 Div2C, 100 Div2D, el resto son A, B y algunos E), alrededor de 1000 problemas en UVA y algunos cientos más en otros jueces en línea. Todavía no soy tan bueno como los demás. ¿Por qué sucede eso y qué debo hacer?

El número de problemas resueltos significa poco. A veces lo menciono para mostrar pasión por la programación (2000+ significa mucho tiempo invertido), pero no dice nada sobre la dificultad de los problemas que ha resuelto.

Ha leído muchas declaraciones de problemas y debe sentirse cómodo al codificar soluciones. Como no ha progresado, debe trabajar de manera más inteligente que hasta ahora.

Puedo ir a Codeforces u otro juez en línea y resolver algunos cientos de problemas tipo Div2 en poco tiempo. Sin embargo, no aprenderé nada.

A estas alturas, debe conocer los tipos de problemas con los que lucha. Necesitas trabajar en eso. Como no estás en Div1, supongo que no estás resolviendo constantemente los problemas Div2D y E. Concéntrate en ellos. Luego, sube a Div1 hasta el problema C.

Cuando tenga problemas con un problema, diga la teoría de grafos, trate de estudiar la teoría detrás de las ideas clave y consolide su conocimiento y comprensión.

Calificar para ICPC WF es mucho más complicado. Algunos regionales son mucho más fáciles que otros. Realmente depende de dónde estudies. También depende de si puedes conseguir buenos compañeros de equipo o no.

Aquí viene la persona que resolvió algunas veces más problemas sin alcanzar un alto nivel 🙂

Puede haber varias razones por las que mejora lentamente. Tal vez esté resolviendo problemas de alguna manera incorrecta (como ir directamente a la editorial y escribir lo que dice sin tratar de entender qué sucede allí y por qué funciona de esta manera) . Tal vez estás resolviendo problemas muy fáciles que no te enseñan ningún concepto nuevo y no te hacen un competidor más fuerte y más hábil. Según sus palabras, parece que alrededor de la mitad de los problemas que resolvió en CF están por debajo de div2 C, por lo que estas tareas casi nunca requieren ningún conocimiento de usted además de saber cómo escribir lo que dice el enunciado del problema en cualquier lenguaje de programación. Si escogiste problemas en UVA de la misma manera, ese número 2000 no me parece tan impresionante 🙂 Tal vez solo eres especial de alguna manera o hay algo llamado talento que importa mucho y no tienes eso talento. No puedo decir con confianza cuál es la razón exacta.

Cuando me clasifiqué para las Finales Mundiales por primera vez, ya había resuelto más de 2000 problemas 🙂 Creo que ya tenía más de 2000 problemas resueltos (especialmente si tomaremos en cuenta todos los pasos) en 2012 cuando ocupó el puesto número 28 en las regionales, varios problemas detrás de la calificación para WF.

Y cuando califiqué para ICPC WF 2015, la razón principal no fue la cantidad de problemas resueltos en diferentes OJ, sino mis habilidades en ICPC y tener un buen equipo que contenía a una persona mucho mejor que yo is Es muy posible que haya resuelto 2000 problemas en ese solo año entre unirme a mi equipo y participar en las Finales Mundiales.

Mi consejo general es: intenta resolver problemas más difíciles. Para Codeforces, después de cada ronda div2, puede verificar qué resolvieron las personas desde la parte inferior de div1 y qué se requería que resolvieran los muchachos div2 para obtener un aumento de calificación decente incluso teniendo una buena calificación antes del concurso, y resolver al menos estas tareas; Lo ideal es que tengas que resolver cada concurso div2 por completo para asegurarte de que estás cubriendo todo lo necesario para entrar en div1. Para ICPC, te sugiero que encuentres un buen equipo en primer lugar, porque ICPC es una competencia de equipo 🙂 Y también comenzar a practicar ICPC (concursos de equipo de 5 horas y todo eso) además de resolver OJ, porque esa es la forma más natural de mejorar en ICPC.

En algún momento deberías preguntarte: “¿Este tipo de concurso resalta mis talentos?” y sé sincero cuando lo contestes.

Un elemento clave que no aborda es si es competitivo, ya sea que el equipo esté a su alcance o no sea una propuesta realista. Para la calificación del sprint olímpico de los EE. UU. De 2016, un corredor tenía que tener un tiempo de 10.16. Si el mejor tiempo de un corredor fuera 10.17, claramente estaría en la cúspide y convertir las calificaciones en un objetivo realista. Pero si su tiempo fuera 10.4, seguiría siendo un velocista extremadamente rápido, pero si llegara a una edad en la que la gente comienza a disminuir la velocidad en lugar de continuar más rápido, sería el momento de aceptar que había suficientes personas más rápido que él para este objetivo en particular No se iba a lograr. Pero eso ciertamente no refleja ningún fracaso real en la vida. Algunos velocistas se dirigen al luge o trineo donde su velocidad aún puede ser una ventaja. O ir al fútbol.

En cuanto a por qué los demás podrían ser mejores que tú, así es en la vida cuando compites, en este caso, con miles de otras personas muy brillantes. Estudiar en sí mismo no garantiza el éxito. En ajedrez, muchos miles estudian el juego, pero solo hay un poco más de 1500 grandes maestros. E incluso con años de estudio dedicado, la mayoría de los grandes maestros nunca se acercan al nivel en el que cumplen con los requisitos para competir en el torneo de candidatos para seleccionar al jugador que cumpla con el campeonato mundial actual. Algunos jugadores tienen más habilidad que otros y eso se aplica a cualquier campo. Haz tu mejor esfuerzo y aceptas que algunas cosas están más allá de tu control.

Ciertamente no hay nada malo y probablemente sea muy correcto continuar practicando la resolución de problemas. Independientemente de si calificas para alguna competencia o no, estás mejorando tus habilidades. En una futura entrevista de trabajo, siempre existe la posibilidad de que se le haga alguna pregunta para resolver problemas y lo que está haciendo hoy podría diferenciarlo del próximo solicitante. Incluso si esto no ocurre, prepararse para una competencia es una mejora personal y lo hará un mejor futuro empleado. Mi único consejo real es no lograr que alcanzar algún objetivo competitivo en particular sea el método por el cual juzgas tus habilidades o tu valor. En última instancia, hay muchos más factores importantes por los cuales se juzgará su éxito en la vida.

Creo que ahora se trata de la relación calidad-cantidad. Has resuelto una gran cantidad de problemas, eso es genial. Sin embargo, no está claro si ha resuelto un tipo similar de 1000 problemas o se ha expandido para cubrir conceptos diferentes y difíciles. Dado que ha resuelto muchos problemas, supongo que tiene buenas habilidades de implementación pero necesita trabajar en la identificación de su problema y el paso de la solución.

Si yo fuera tú, pasaría tiempo resolviendo qué es exactamente lo que no entiendes sobre problemas difíciles:

  • Falta de conocimiento: aprenda conceptos
  • Falta de habilidades de implementación: ver el código de otros
  • Falta de práctica: resuelve más problemas

Una vez que identifique el problema, elija problemas que cubran específicamente esos problemas. ¡Discuta con amigos, publique en foros, busque ayuda! La idea debería ser mejorar al menos uno de los anteriores con cada nuevo problema que resuelva. Caer en la trampa de lo fácil es fácil.

Además, deja de preocuparte demasiado por ser un codificador Div1 o Red. Estos vendrán automáticamente a medida que mejore. ¡Buena suerte!

Creo que deberías ver una película. Particularmente este:

Además de las escenas de acción y lucha, hay mucha filosofía en esta película que puedes retomar si le prestas atención cuidadosamente. Las otras secuelas de ip man simplemente no están a la altura, sino que vuelven a la pregunta. Hay una escena en la que ip man habla con su alumno.

También tenga en cuenta que la palabra Kung fu en chino es un sustantivo amplio que describe la habilidad. Entonces, por ejemplo, puedo decir que “el rey de fu de john arreglando un auto es excelente”. Tú entiendes.

Hombre IP: ¿quién crees que es el mejor luchador del mundo?

Estudiante: usted, por supuesto, maestro ip, ¿quién puede igualar su Kung fu?

Hombre ip: ¿qué tal en 5 años, 10 años?

Estudiante: ………

Ip man: ya ves que si practicas todos los días, tu kung fu se hará más fuerte y todos los días me haré mayor. Hasta que un día me superarás. Así que ya ves que no existe el mejor luchador del mundo.

Así que te animo a que sigas trabajando en tu Kung fu, ya que no estás cerca de tu mejor momento en la decadencia.

Puede ser que la razón sea que copie la solución pegada de otros o tal vez esté resolviendo el mismo tipo de pregunta una y otra vez. En general, más de 1000 preguntas si se hacen correctamente pueden convertirlo en un codificador rojo. No entres en pánico. Simplemente concentre más una cualidad de los problemas en lugar de la cantidad. Definitivamente tendrás éxito