Skip to content

Commit

Permalink
actualizacion de posts
Browse files Browse the repository at this point in the history
  • Loading branch information
ArielParra committed Sep 12, 2024
1 parent 59acebc commit 3b68afc
Show file tree
Hide file tree
Showing 9 changed files with 82 additions and 15 deletions.
3 changes: 3 additions & 0 deletions _data/contact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
- type: twitter
icon: "fa-brands fa-x-twitter"

- type: link
icon: "fas fa-link"
url: "https://mtr.bio/cpc-gallos"
# Uncomment and complete the url below to enable more contact options
#
# - type: mastodon
Expand Down
18 changes: 12 additions & 6 deletions _posts/2024-06-28-Recursos.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,30 @@ __Tabla de Contenidos__
* Asterisk needed for Table Of Contents
{:toc}

## Libros de Programación Competitiva
## Libros de Programación Competitiva y Algoritmia

- [Antti Laaksonen: Competitive Programmer’s Handbook](https://cses.fi/book/book.pdf)
- [Antti Laaksonen: Guide to Competitive Programming](https://duoblogger.github.io/assets/pdf/memonvyftw/guide-t-cp.pdf)
- [Antti Laaksonen: Guide to Competitive Programming Second Edition](https://edisciplinas.usp.br/pluginfile.php/7933913/course/section/6549987/Antti%20Laaksonen%20-%20Guide%20to%20Competitive%20Programming_%20Learning_Version2.pdf)
- [Antti Laaksonen: Guide to Competitive Programming](https://duoblogger.github.io/assets/pdf/memonvyftw/guide-t-cp.pdf)
- [Darren Yao: AN INTRODUCTION TO THE USA COMPUTING OLYMPIAD](https://darrenyao.com/usacobook/cpp.pdf)
- [Johan Sannemo: Principles of Algorithmic Problem Solving](https://www.csc.kth.se/~jsannemo/slask/main.pdf)
- [OMI: Guía Entrenamiento - Nivel Bachillerato](https://www.olimpiadadeinformatica.org.mx/omi/omi/Material/Preparacion_OMI_DF_EdoMex_Bach.aspx)
- [S. Dasgupta, C. H. Papadimitriou, & U. V. Vazirani: Algorithms](https://web.archive.org/web/20160113140911/http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf)
- [Samuel Hsiang, et al: Crash Course Companion](https://github.com/alwayswimmin/cs_guide/blob/master/guide.pdf)
- [Steven & Felix: Competitive Programming 1](https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf)
- [Steven & Felix: Competitive Programming 2](https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf)
- [Steven & Felix: Competitive Programming 3](https://files.gitter.im/SamZhangQingChuan/sam/DA1g/Steven-Halim_-Felix-Halim-Competitive-Programming-3_-The-New-Lower-Bound-of-Programming-Contests-Lulu.com-_2013_.pdf)
- [Steven Halim, et al: Competitive Programming 4 - Book 1](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzM0NDkwMDAvNGE2MmYwOWE3ZTMzNzFjMzNiNDAwZDBjMjdlYzZlNDUvJTI4MSUyOSUyMFN0ZXZlbiUyMEhhbGltJTJDJTIwRmVsaXglMjBIYWxpbSUyQyUyMFN1aGVuZHJ5JTIwRWZmZW5keSUyMC0lMjBDb21wZXRpdGl2ZSUyMFByb2dyYW1taW5nJTIwNCUyMC0lMjBCb29rJTIwMS4lMjAxLWx1bHUlMjAlMjgyMDIyJTI5LnBkZg==)
- [Steven Halim, et al: Competitive Programming 4 - Book 2](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzM0NDkwMDAvYjNmYTUwZWJmYWQzNmU4ZTBkYmY2Y2I0NGIxODYwZjEvJTI4MiUyOSUyMFN0ZXZlbiUyMEhhbGltJTJDJTIwRmVsaXglMjBIYWxpbSUyQyUyMFN1aGVuZHJ5JTIwRWZmZW5keSUyMC0lMjBDb21wZXRpdGl2ZSUyMFByb2dyYW1taW5nJTIwNCUyMC0lMjBCb29rJTIwMi1sdWx1JTIwJTI4MjAyMiUyOS5wZGY=)
- [Steven S. & Miguel A. Programming Challenges](https://i.cs.hku.hk/~provinci/files/b2-programming_challenges.pdf)
- [Steven S. Skiena: The Algorithm Design Manual 2nd edition](https://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAlgorithmDesignManual.pdf)
- [Tim Roughgarden: Algorithms Illuminated Part 1 The basics](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzIxMjEwMDAvYTA1OWNkMzFkZDM5OWYwNDM2YWFlN2Q5M2YxYmQ1OGEvVGltJTIwUm91Z2hnYXJkZW4lMjAtJTIwQWxnb3JpdGhtcyUyMElsbHVtaW5hdGVkXyUyMFBhcnQlMjAxXyUyMFRoZSUyMEJhc2ljcy1Tb3VuZGxpa2V5b3Vyc2VsZiUyMFB1YmwuJTIwJTI4MjAxNyUyOS5wZGY=)
- [Tim Roughgarden: Algorithms Illuminated Part 2 Graph Algorithms and Data Structures](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzIyNTcwMDAvMTg5MDBkYjhkOGZkYzFlNzI2NzhhNjMzYTIyNGY1MjcvVGltJTIwUm91Z2hnYXJkZW4lMjAtJTIwQWxnb3JpdGhtcyUyMElsbHVtaW5hdGVkJTIwJTI4UGFydCUyMDIlMjlfJTIwR3JhcGglMjBBbGdvcml0aG1zJTIwYW5kJTIwRGF0YSUyMFN0cnVjdHVyZXMtU291bmRsaWtleW91cnNlbGYlMjBQdWJsaXNoaW5nJTJDJTIwTExDJTIwJTI4MjAxOCUyOS5wZGY=)
- [Tim Roughgarden: Algorithms Illuminated Part 3 Greedy Algorithms and Dynamic Programming](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzI0NjUwMDAvNGE3M2MxNzJjMzY5Y2M3ZDczYzAyZmU4MjcwYjJhZTAvVGltJTIwUm91Z2hnYXJkZW4lMjAtJTIwQWxnb3JpdGhtcyUyMElsbHVtaW5hdGVkLiUyMFBhcnQlMjAzXyUyMEdyZWVkeSUyMEFsZ29yaXRobXMlMjBhbmQlMjBEeW5hbWljJTIwUHJvZ3JhbW1pbmcuJTIwMy1Tb3VuZGxpa2V5b3Vyc2VsZiUyMFB1Ymxpc2hpbmclMkMlMjBMTEMlMjAlMjgyMDE5JTI5LnBkZg==)
- [Tim Roughgarden: Algorithms Illuminated Part 4 Algorithms for NP-Hard Problems](BASE64: aHR0cHM6Ly9kb3dubG9hZC5saWJyYXJ5LmxvbC9tYWluLzI2MTYwMDAvMTY2ZGM4NWVlZTJiYjMxMDY2MTg5MDI4MTY5ODU3YTUvVGltJTIwUm91Z2hnYXJkZW4lMjAtJTIwQWxnb3JpdGhtcyUyMElsbHVtaW5hdGVkJTIwJTI4UGFydCUyMDQlMjlfJTIwQWxnb3JpdGhtcyUyMGZvciUyME5QLUhhcmQlMjBQcm9ibGVtcy4lMjA0LVNvdW5kbGlrZXlvdXJzZWxmJTIwUHVibGlzaGluZyUyQyUyMExMQyUyMCUyODIwMjAlMjkucGRm)
- [S. Dasgupta, C. H. Papadimitriou, & U. V. Vazirani: Algorithms](https://web.archive.org/web/20160113140911/http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf)
- [Steven S. & Miguel A. Programming Challenges](https://i.cs.hku.hk/~provinci/files/b2-programming_challenges.pdf)
- [Vargas, L. Problemas y Algoritmos](https://drive.google.com/file/d/1PLOO3wLCnOVC_cODwiofahsRGeyoJeCU/view)


## Visualizadores de algoritmos y código

- [pythontutor](https://pythontutor.com/cpp.html#mode=edit) Compilador y debuger visual de C++ y python.
Expand All @@ -50,7 +53,7 @@ __Tabla de Contenidos__

## Recursos varios

- [Algorimica](https://en.algorithmica.org/) un libro digital acerca de temas avanzados de la algotmia y hardware, enfocado hacia la programacióncompetitiva.
- [Algorithmica](https://en.algorithmica.org/) un libro digital acerca de temas avanzados de la algotmia y hardware, enfocado hacia la programación competitiva.
- [Algorithms for Competitive Programming ](https://cp-algorithms.com/) descripción de muchos algoritmos y estructuras de datos.
- [Awesome Competitive Programming Awesome](https://github.com/lnishan/awesome-competitive-programming) lista de recursos acerca de programación competitiva, algoritmos y estructuras de datos.
- [Big-O Cheat Sheet](https://www.bigocheatsheet.com/) cheat sheet para el analisis de complejidad.
Expand All @@ -64,4 +67,7 @@ __Tabla de Contenidos__
- [soluciones dicarbene](https://dicarbene.github.io/solutions/resources_learn/) cheat sheets y pdfs.
- [Top Coder](https://www.topcoder.com/thrive/tracks?track=Competitive%20Programming) blogs acerca de múltiples temas de la programación competitiva.
- [Universidad de Iowa](https://icpc.cs.iastate.edu/resources) recursos varios.
- [Universidad de Purdue](https://www.cs.purdue.edu/homes/ninghui/courses/390_Fall19/resources.html) recursos varios.
- [Universidad de Purdue](https://www.cs.purdue.edu/homes/ninghui/courses/390_Fall19/resources.html) recursos varios.
- [Gaurav Walia: Free-Algorithms-Books](https://github.com/GauravWalia19/Free-Algorithms-Books) varios libros de algoritmos gratis.
- [ Prasad Gujar: CompetitiveProgramming](https://github.com/prasadgujar/CompetitiveProgramming) varios recursos como libros y codigos.
- [AlgoWiki](https://wiki.algo.is/) wiki de algoritmos.
3 changes: 3 additions & 0 deletions _posts/2024-07-02-Certificaciones_Gratuitas.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ Estas no están protectorados pero tienen el nombre y validación de certificaci
- [INCyTEA](https://www.aguascalientes.gob.mx/incytea/) El Instituto de Ciencia Y Tecnología de Aguascalientes suele sacar varias becas a lo largo del año por lo que hay que estar al pendiente en sus páginas.
- [Blockmakers](https://blockmakers.mx/) cursos creados en colaboración con el INCyTEA para temas de Blockchain, Solidity, Ciencia de Datos e introducción a la Inteligencia Artificial.
- [ICP Developer bootcamps](https://lu.ma/icp-developer-2024) cursos promocionados por el INCyTEA. El concepto de ICP se relaciona al blockchain, estos bootcamps son casi cada mes y solo duran solo una semana cada uno y al final para obtener tu certificado entregas y presentas un proyecto. Tienen varios tipos de bootcamps Motoko, Azle, ICP developer Javascript y Frontend Developer.
- [Diplomado en Educación Financiera por la CONDUSEF](https://inscripcion-diplomado.condusef.gob.mx/) este diplomado dura 3 meses y esta realizado en colaboración de Banco de México (Banxico), Bolsa Institucional de Valores (BIVA), Instituto Nacional de la Economía Social (INAES), Better than Cash Alliance, Cetesdirecto, Comisión Nacional Bancaria y de Valores (CNBV), Policía Cibernética y Secretaría de Hacienda y Crédito Público (SHCP).


## Exemenes de habilidades de Hackerrank con certificado

Expand All @@ -75,6 +77,7 @@ Estas no están protectorados pero tienen el nombre y validación de certificaci
- [GitHub Professional Certificate](https://www.linkedin.com/learning/paths/career-essentials-in-github-professional-certificate) certificado profesional sacado por Linkedin en colaboración con Github.
- [OpenCV Bootcamp](https://opencv.org/university/free-opencv-course/) esta librería de Python es muy utilizada en el mercado, es usada para reconocimiento y análisis de imágenes ya sean estáticas o en tiempo real con una cámara.
- [TensorFlow Bootcamp](https://opencv.org/university/free-tensorflow-keras-course) esta librería de Python creada por Google es indispensable para la creación de redes neuronales, las cuales son las bases de la inteligencia artificial.
- [Motoko Bootcamp](https://www.motokobootcamp.com/) La categoria de "Self-Study" te enseña las bases del lenguaje de programación Motoko usado para "smart contracts" (blockchain) por el ICP (Internet Computer) donde al final reciviras un diploma.

### Diplomados de Capacítate Para el Empleo
[Capacítate Para el Empleo](https://capacitateparaelempleo.org/mostrar-diplomados) es una plataforma en español creada por la fundación Carlos Slim donde hay distintos diplomados de tecnología.
Expand Down
1 change: 1 addition & 0 deletions _posts/2024-07-13-Internships.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Las prácticas profesionales son un requisito de las universidades, aunque es co
- [UberSTAR](https://www.uber.com/us/en/careers/uberstar/?uclick_id=bd7b436b-e9d9-466d-bdee-56c8d2352960) es un programa **con** remuneración de 12 semanas.
- [Meta University](https://www.metacareers.com/careerprograms/pathways/metauniversity) es un programa **con** remuneración con de diez semanas de duración desde mayo a agosto, es requisito ser estudiante en tus primeros dos años de universidad para poder aplicar.
- [NVIDIA Ignite](https://www.nvidia.com/en-us/about-nvidia/careers/university-recruiting/) es una programa sin remuneración de 12 semanas sobre el ecosistema de NVIDIA.
- [Dell](https://jobs.dell.com/en/employment/remote-internships-jobs/375/24213/1000000000100/2) son trabajos remotos de nivel internship.

## Referencia
- Harvard. (s.f.). *Technology Internships for First Years and Sophomores*. Recuperado de <https://careerservices.fas.harvard.edu/resources/technology-internships-for-first-years-and-sophomores/>
1 change: 1 addition & 0 deletions _posts/2024-07-17-Beneficios_Estudiantes.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ image:
- Deezer Student: 3 meses gratis Luego, $59 MXN al mes.
- Kaspersky: Descuento del 60% en cualquiera de las soluciones.
- [sharp3d](https://www.shapr3d.com/education) licencia 100% gratuita para renovar anualmente. Shapr3D es un software CAD con el motor Siemens Parasolid®, disponible en Windows, MacOS y iPadOS.
- [notion](https://www.notion.so/es/product/notion-for-education) plan Plus gratis al al presentar correo institucional.
- [canva premium](https://canva.com/edu-signup) canva premium al presentar correo institucional.
- [Student Beans](https://www.studentbeans.com/mx) múltiples ofertas para estudiantes de diferentes marcas.
- [UniDays](https://www.myunidays.com/ES/es-ES) múltiples ofertas para estudiantes de diferentes marcas.
Expand Down
4 changes: 4 additions & 0 deletions _posts/2024-07-17-Embajador.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,12 @@ Un embajador (ambassador) es una persona que representa, habla por o anuncia a u
- [Geeks for Geeks Campus Ambassador](https://www.geeksforgeeks.org/campus-ambassador-program-by-geeksforgeeks/) es un programa para representar a tu institución en Geek for Geeks y dar seminarios en tu institución.
- [Auth0 Ambassador Program](https://auth0.com/ambassador-program) es un programa para compartir conocimientos sobre temas relacionados con la identidad y la seguridad a través de conferencias, contenido, seminarios y otros eventos.
- [GitKraken Ambassador Program](https://www.gitkraken.com/ambassador) es un programa con el propisto de educar a los desarrolladores de todo el mundo sobre el poder de usar Git con los productos GitKraken al promover sus productos, escribir blogs, hacer reseñas, hablar en eventos públicos entre otras actividades.
- [Stackoverflow Student Ambassador](https://students.stackoverflow.co/) Reune y lidera un equipo para completar desafíos durante los Hackathons Globales organizados por Major League Hacking (MLH). Se obtienen beneficios como una camiseta de Student Ambassador, fondos para pizza durante los eventos MLH, y la oportunidad de aparecer en el blog, podcast y boletín informativo de Stack Overflow, el cual llega a 100 millones de desarrolladores cada mes. Además, se obtiene acceso a Stack Overflow for Teams.
- [Deeplearning.AI ambassador](https://www.deeplearning.ai/ambassador/) Ofrece la oportunidad de conectarse a comunidad diversa de colegas y mentores, ofreciendo beneficios como descuentos en cursos para embajadores, promoción de eventos a través de los canales de DeepLearning.AI. Donde al ser embajador debes organizar reuniones trimestrales de manera independiente, ya sea virtuales o presenciales, cuentando con apoyo continuo vía email, acceso a conferencistas y la comunidad de embajadores, además de un video de bienvenida de Andrew Ng y DeepLearning.AI.

## Referencias
- Anil, A. (2020). *Top 5 Student Ambassador Programs for Students : Apply Here*. Recuperado de <https://medium.com/@anilavulaowk/top-5-student-ambassador-programs-for-students-apply-here-by-avulaanilkumar-6a297dc96c17>
- Cambridge. (s.f.). *Meaning of ambassador in English*. Recuperado de <https://dictionary.cambridge.org/us/dictionary/english/ambassador>
- Mudannayaka, S. (2023). *Become Ambassadors for Tech Giants as Students*. Recuperado de <https://santhushajanana.medium.com/become-ambassadors-for-tech-giants-as-students-a023b140155b>
- Saavedra, S. (2023). *¿Cómo aplicar al programa de embajadoras de Google Women Techmakers?*.<https://stephanie-saavedra-ayarde.medium.com/programa-google-women-techmakers-ambassador-37ce26c5186d>
- Waszyńska, S. (2023). *Empowering Developers: The 10 Best Developer Ambassador Program examples*. Recuperado de <https://www.advocu.com/post/empowering-developers-the-10-best-developer-ambassador-program-examples>
36 changes: 32 additions & 4 deletions _posts/2024-07-19-Plantilla.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ image:
```c++
// _autor_
// link y/o nombre del programa
#pragma GCC optimize("Ofast,unroll-loops")//-0.0+0.0=-0
#pragma GCC target("avx2")
//#pragma GCC optimize("Ofast,unroll-loops")//-0.0+0.0=-0
//#pragma GCC target("avx2") // STL cointaner = std::allocator err
#include <bits/stdc++.h>

using ull = unsigned long long;
using ll = long long;
using namespace std;
#define endl '\n'
#define all(x) (x).begin(), (x).end()
#define yn(x) (cout << ((x) ? "YES" : "NO"))
#define dbg(...) cerr<<"LINE("<<__LINE__<<")->["<<#__VA_ARGS__<<"]: ["<<(__VA_ARGS__)<<"]\n";
#define pb push_back
#define F first
Expand Down Expand Up @@ -55,6 +57,9 @@ __Tabla de contenidos__
> Las directivas `#pragma` no son estándar y solo funcionan en los compiladores de GNU como gcc y g++. Es muy común que arroje un error al querer compilar en Xcode, ya que este usa el compilador Clang, al igual que en Visual Studio que usa el compilador MSVC.
{: .prompt-warning }

> Estos pueden solucionar ciertos `TLE` como en los problemas dentro de este [link](https://usaco.guide/adv/vectorization?lang=cpp#examples-from-cf), pero al usar el pragma `GCC target("avx2")` junto con containers del STL o iteradores o cualquier función de la STL que use internamente `std::allocator()` soltara un error, asi que descomentar los pragmas a discreción
{: .prompt-danger}

La vectorización es el desarrollo de un bucle combinado con la generación de instrucciones SIMD (Single Instruction, Multiple Data) empaquetadas por parte del compilador para los procesadores con arquitectura x86.

Los juzgados virtuales son los que compilan nuestros códigos, por lo que no podemos aplicar parámetros al compilador directamente como lo haríamos en nuestra terminal, por ejemplo en este caso se aplica la optimización O2 (la optimización por defecto) al compilador g++: `g++ -O2 code.cpp`. Y no habría problema en no poder editar los parámetros de compilación si no se haya visto ya en múltiples ocasiones que no usarlos puede ocasionar un Time limit exceeded, como en el problema [855F Nagini](https://codeforces.com/contest/855/problem/F), donde paso que cuando [no se usaron los pragmas](https://codeforces.com/contest/855/submission/89815214) lanzo un `TLE` y cuando [si se usaron pragmas](https://codeforces.com/contest/855/submission/72962508) se pudo reducir el tiempo hasta en un 61.4%.
Expand Down Expand Up @@ -246,9 +251,31 @@ _GLOBAL__sub_I_doNewline():

donde solo imprimir `\n` resulta en 16 líneas de ensamblador comparadas con las 45 líneas necesarias para `std::endl`, más líneas en ensamblador no necesariamente significa peor rendimiento, el problema es que como estas afectan directamente al búfer de salida, aquí si afecta la cantidad de líneas.

#### #define dbg(...)
#### Macros

##### #define all(x)
Esta macro simplifica el uso de rangos en contenedores STL. En lugar de escribir `x.begin()`, `x.end()`, puedes usar `all(x)` para pasar el rango de iteradores a funciones como sort.

```c++
vector<int> v{3,4,1,2};
sort( v.begin(),v.end() );
sort( all(v) );
```
##### #define yn(x)
Esta macro imprime "YES" si `x` es verdadero y "NO" si `x` es falso, proporcionando una forma rápida de mostrar resultados booleanos en la salida estándar.
```c++
bool flag = true;
yn(flag); // Imprime: YES
flag = !flag;
yn(flag); // Imprime: NO
```

##### #define dbg(...)

Esto nos permite ejecutar de una manera simple nuestros códigos, solamente rodeamos alguna variable o función que devuelva valores y nos dirá en que línea esta, cual variable y su valor.
La macro `dbg()` nos permite ejecutar de una manera simple nuestros códigos, solamente rodeamos alguna variable o función que devuelva valores y nos dirá en que línea esta, cual variable y su valor.

```c++
int i=3;
Expand Down Expand Up @@ -463,6 +490,7 @@ En la plantilla tenemos `for(int i=0;i<n;++i)` en lugar de `for(int i=0;i<n;i++)
- GNU. (s.f). *7 Pragmas*. Recuperado de <https://gcc.gnu.org/onlinedocs/cpp/Pragmas.html>
- Gokhale, S. (2019). *Debugging in C++*. Recuperado de <https://codeforces.com/blog/entry/65543>
- Gorbachev, E. (2021). *Ok, lets talk about cout.tie once and forever*. Recuperado de <https://codeforces.com/blog/entry/90775>
- Golovanov, A.(2020). *C++ tips and tricks*. Recuperado de <https://codeforces.com/blog/entry/74684>
- Govil, A. (2022). *<bits/stdc++.h> in C++*. Recuperado de <https://www.geeksforgeeks.org/bitsstdc-h-c/>
- Hikikomorichka. (2021). *Useful C++ Tricks*. Recuperado de <https://codeforces.com/blog/entry/87283>
- Intel. (s.f). *A guide to vectorization with Intel® C++ Compilers*. Recuperado de <https://www.intel.com/content/dam/develop/external/us/en/documents/31848-compilerautovectorizationguide.pdf>
Expand Down
Loading

0 comments on commit 3b68afc

Please sign in to comment.