lab – Telegram
213 subscribers
367 photos
354 videos
21 files
325 links
ما اینجا میم میزاریم بینش پست آموزشی
Download Telegram
هشت ساله پیش، سوالات مسابقه راند ۳۸۳ کدفورسز رو امیررضا پوراخوان (Arpa) و مهرداد صابری (Batman) آماده کرده بودن.

https://codeforces.com/contest/742
🔥4🥰2
سال نو مبارک!

امیدوارم امسال مثل یه الگوریتم بهینه، بدون پیچیدگی اضافه و با بیشترین بازدهی پیش بره! لحظه‌هات پر از شادی، موفقیت‌هات مثل یک گراف همبند همیشه در جریان، و لبخندهات به اندازه‌ی تعداد اعداد اول بی‌نهایت باشه!

به سالی پر از رشد، یادگیری و پیروزی‌های جدید خوش آمدید!
7🙏1
Proof that it happened.
👍2
Forwarded from Geeky net
امروز امدم از jcal استفاده دیدم یه باگی داره که سال کبیسه رو حساب نکرده! امدم ایمیل بزنم گفتم اول گیت هاب رو چک کنم دیدم سازندش فوت شده یه حس عجیبی بهم دست، اشکان قاسمی سال ها بیش این برنامه رو نوشته بود و هنوز دارند ازش استفاده میکنند. یه بخش قشنگ و ناراحت کننده دنیای نرم افزار آزاد و گنو.
❤‍🔥6👍1
I decided to write for you some jokes as a reward for your efforts on Codeforces :)

Why did the bitwise operator feel powerful? Because it could shift anything.

Why did the dynamic programmer fail his test? He forgot to memorize his answers.

Why did the recursion go to therapy? It kept calling itself.

Why don't developers use elevators? They're afraid of infinite loops.

Why did the debugging session take so long? Because the bug had a recursive nature.

Why did the competitive programmer get kicked out of the bakery? He kept greedily taking all the bread.

https://codeforces.com/blog/entry/140792
😁1
lab
bgc_usl_c_1.pdf
bgpython_usl_c_1.pdf
895.2 KB
پیرو کتاب قبلی این یکی هم رفرنس خوبیه برا زبان برنامه نویسی پایتون
1🔥1
یک مسئله رو با یک الگوریتم یکسان داخل سی پلاس پلاس و پایتون پیاده سازی کردم و خوب خوشبختانه با پیاده سازی pypy مسئله با زمان اجرا یک و نیم ثانیه اکسپت شد. و بعد دوبار کد سی پلاس پلاس رو سابمیت کردم که اولی بدون غیرفعال کردن sync_with_stdio بود ولی دومی غیرفعالش کردم که تفاووت انچنانی ایجاد نکرد و جالبه که با پیاده سازی python که کند تر از pypy هست به time limit خورد.

به قول یکی از دوستان یک حلقه فور یک میلیاردی در سی پلاس پلاس حدود یک ثانیه ولی در پایتون چند دقیقه زمان میبرد.
با این همه ولی پایتون کارو جمع کرد.
البته که این مسئله چون حجم جواب حجیم بود و پایتون هم توی print کردن به اندازه cpp بهینه نیست این چنین گپی بین زمان اجرا ها افتاده.
🥰4
سال ۲۰۱۱، icpc world final تو آمریکا برگزار شده بوده و این تیم دانشگاه شریفه و جالبه که یک زن داخل تیمه.
شریف ۶ تا سوال حل میکنه و ۱۳هم میشه که خیلی رتبه خفنیه.
خانمه اسمش سپیده مهابادیه که گویا الان تو شرکت ماکروسافت مشغول به کاره.
🔥8🤣1
lab
This picture shows how many problems I have solved in my life.
آپدیت:
بعد از حدوده پنج ماه شروع کردن CP و حل کردن ۲۸۴ تا مسئله الان به نظر خودم توانایی پیاده سازیم تو زبان پایتون بطور چشمگیری بهتر شده و کلی هم سی پلاس پلاس یادگرفتم. الان باید بیشتر هدفم رو بزارم رو یادگیری مباحثی مثل:‌dp, graph, number theory
🔥7
lab
How many soldiers are there in Han Xin's army? – If you let them parade in rows of 3 soldiers, two soldiers will be left. If you let them parade in rows of 5, 3 will be left, and in rows of 7, 2 will be left. این مسئله معروفه به قضیه باقی مانده چینی درواقع…
یک مسئله اینجا داریم:
یک عدد به ما میده که ما میتونیم اعداد اون عدد رو جابجا کنیم و بعد از ما میخواد بهش بگیم که ایا با باز آرایی کردن این عدد میتونیم کاری کنیم که به ۶۰ تقسیم پذیر بشه یا خیر.
در واقع این یک شکلی از قضیه باقی مانده چینی به حساب میاد واضحه که اگه بخوایم تمام جایگشت های اون عدد رو یکی یکی تست کنیم ببینیم به ۶۰ تقسیم پذیر هستن یا نه یکم دیر به جواب میرسیم و واقعن هم نیازی نیست. درواقع یک عدد وقتی به ۶۰ بخش پذیر هست که جمع اعدادش به ۳ بخش پذیر باشن و حداقل یک صفر و همچنین حداقل یک عدد زوج داخلش باشه. البته این برا زمانیه که بتونیم اعداد رو بازآرایی کنیم

لینک مسئله:
https://codeforces.com/problemset/problem/1266/A
👌2
lab
یک مسئله اینجا داریم: یک عدد به ما میده که ما میتونیم اعداد اون عدد رو جابجا کنیم و بعد از ما میخواد بهش بگیم که ایا با باز آرایی کردن این عدد میتونیم کاری کنیم که به ۶۰ تقسیم پذیر بشه یا خیر. در واقع این یک شکلی از قضیه باقی مانده چینی به حساب میاد واضحه…
از ما خواستن که یک آرایه بسازیم که p[p[i]] = i and p[i] ≠ i باشه. ظاهرش یکم نامفهومه ولی در اصل دنبال یک همچین ترتیبیه:
2 1 4 3
داشتم فکر میکردم چجوری میشه همچین چیزی رو ساخت که دیدم خیلی کد سی پلاس پلاسش بامزه شد.
#include <bits/stdc++.h>


using namespace std;
int main(){
int n;
cin >> n;
if (n % 2 == 1){
cout << -1 << "\n";
} else{
for (int i = 1; i <= n; i += 2){
cout << i+1 << " " << i << " ";
}
}
}


من دقت کردم توی سی پلاس پلاس کد زدن هر کسی استایل خودش رو داره و این خیلی بامزه ترش میکنه.

لینک مسئله:
https://codeforces.com/problemset/problem/233/A
👍2🔥1
دوتا کد اینجا داریم یکی به پایتون یکی به سی پلاس پلاس

for _ in range(int(input())):
n, m, k = map(int, input().split())
b = list(map(int, input().split()))
c = list(map(int, input().split()))
ans = 0
for i in b:
for j in c:
if i + j <= k:
ans += 1
print(ans)

و همین کد به سی پلاس پلاس:

#include <bits/stdc++.h>
using namespace std;


int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while(t--){
int n, m, k, ans = 0;
cin >> n >> m >> k;
int b[n], c[m];
for (int i = 0; i < n; i++){
cin >> b[i];
}
for (int i = 0; i < m; i++){
cin >> c[i];
}
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
if (b[i] + c[j] <= k){
ans++;
}
}
}
cout << ans << '\n';
}
}


لینک مسئله:
https://codeforces.com/problemset/problem/1941/A
اگه بخوایم بخش پذیری عددی رو به یک عدد که توان دو هستش مثل (۲، ۴، ۸، ۱۶،...) چک کنیم. میتونیم با توان اون عدد توان دویی اندش (&) کنیم.
چرا کار میده؟ چون اعداد توان دو (توان برابر k) حداقل k بیت پایانیشون صفره.
پس بنابراین اگه اون عدد هم K بیت پایانیش صفر باشه به عدد ما بخش پذیره.
فرض کنیم میخوایم زوج و فرد بودن n رو چک کنیم به سادگی میتونیم با کد پایین فقط با چک کردن یک بیت این کارو انجام بدیم:
if (n & 1)
cout << "Odd";
else
cout << "Even";

حالا چرا یک؟ چون 2¹ میشه 2 و در اصل k اینجا 1 هستش. یعنی یک بیت پایانی 0 هست.
به همین ترتیب اگه بخوایم بخش پذیری رو به 4 چک کنیم عدد رو به 3 اند میکنیم. چون 2 بیت پایانی 0 هست.
تو مسئله هایی که تعداد زیادی چک کردن بخش پذیری لازمه این روش کمک کنندس برای کم کردن زمان اجرا.
👍3🔥3