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
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
Codeforces
Some CP jokes :)
I decided to write for you some jokes as a reward for your efforts on Codeforces :)
😁1
lab
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 doesn't anyone lend money for void function? Because, it never return anything
🥰2
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 بهینه نیست این چنین گپی بین زمان اجرا ها افتاده.
به قول یکی از دوستان یک حلقه فور یک میلیاردی در سی پلاس پلاس حدود یک ثانیه ولی در پایتون چند دقیقه زمان میبرد.
با این همه ولی پایتون کارو جمع کرد.
البته که این مسئله چون حجم جواب حجیم بود و پایتون هم توی 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
بعد از حدوده پنج ماه شروع کردن 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
یک عدد به ما میده که ما میتونیم اعداد اون عدد رو جابجا کنیم و بعد از ما میخواد بهش بگیم که ایا با باز آرایی کردن این عدد میتونیم کاری کنیم که به ۶۰ تقسیم پذیر بشه یا خیر.
در واقع این یک شکلی از قضیه باقی مانده چینی به حساب میاد واضحه که اگه بخوایم تمام جایگشت های اون عدد رو یکی یکی تست کنیم ببینیم به ۶۰ تقسیم پذیر هستن یا نه یکم دیر به جواب میرسیم و واقعن هم نیازی نیست. درواقع یک عدد وقتی به ۶۰ بخش پذیر هست که جمع اعدادش به ۳ بخش پذیر باشن و حداقل یک صفر و همچنین حداقل یک عدد زوج داخلش باشه. البته این برا زمانیه که بتونیم اعداد رو بازآرایی کنیم
لینک مسئله:
https://codeforces.com/problemset/problem/1266/A
Codeforces
Problem - 1266A - Codeforces
Codeforces. Programming competitions and contests, programming community
👌2
lab
یک مسئله اینجا داریم: یک عدد به ما میده که ما میتونیم اعداد اون عدد رو جابجا کنیم و بعد از ما میخواد بهش بگیم که ایا با باز آرایی کردن این عدد میتونیم کاری کنیم که به ۶۰ تقسیم پذیر بشه یا خیر. در واقع این یک شکلی از قضیه باقی مانده چینی به حساب میاد واضحه…
از ما خواستن که یک آرایه بسازیم که p[p[i]] = i and p[i] ≠ i باشه. ظاهرش یکم نامفهومه ولی در اصل دنبال یک همچین ترتیبیه:
2 1 4 3
داشتم فکر میکردم چجوری میشه همچین چیزی رو ساخت که دیدم خیلی کد سی پلاس پلاسش بامزه شد.
من دقت کردم توی سی پلاس پلاس کد زدن هر کسی استایل خودش رو داره و این خیلی بامزه ترش میکنه.
لینک مسئله:
https://codeforces.com/problemset/problem/233/A
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
Codeforces
Problem - 233A - Codeforces
Codeforces. Programming competitions and contests, programming community
👍2🔥1
دوتا کد اینجا داریم یکی به پایتون یکی به سی پلاس پلاس
و همین کد به سی پلاس پلاس:
لینک مسئله:
https://codeforces.com/problemset/problem/1941/A
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
Codeforces
Problem - 1941A - Codeforces
Codeforces. Programming competitions and contests, programming community
اگه بخوایم بخش پذیری عددی رو به یک عدد که توان دو هستش مثل (۲، ۴، ۸، ۱۶،...) چک کنیم. میتونیم با توان اون عدد توان دویی اندش (&) کنیم.
چرا کار میده؟ چون اعداد توان دو (توان برابر k) حداقل k بیت پایانیشون صفره.
پس بنابراین اگه اون عدد هم K بیت پایانیش صفر باشه به عدد ما بخش پذیره.
فرض کنیم میخوایم زوج و فرد بودن n رو چک کنیم به سادگی میتونیم با کد پایین فقط با چک کردن یک بیت این کارو انجام بدیم:
حالا چرا یک؟ چون 2¹ میشه 2 و در اصل k اینجا 1 هستش. یعنی یک بیت پایانی 0 هست.
به همین ترتیب اگه بخوایم بخش پذیری رو به 4 چک کنیم عدد رو به 3 اند میکنیم. چون 2 بیت پایانی 0 هست.
تو مسئله هایی که تعداد زیادی چک کردن بخش پذیری لازمه این روش کمک کنندس برای کم کردن زمان اجرا.
چرا کار میده؟ چون اعداد توان دو (توان برابر k) حداقل k بیت پایانیشون صفره.
پس بنابراین اگه اون عدد هم K بیت پایانیش صفر باشه به عدد ما بخش پذیره.
فرض کنیم میخوایم زوج و فرد بودن n رو چک کنیم به سادگی میتونیم با کد پایین فقط با چک کردن یک بیت این کارو انجام بدیم:
if (n & 1)
cout << "Odd";
else
cout << "Even";
حالا چرا یک؟ چون 2¹ میشه 2 و در اصل k اینجا 1 هستش. یعنی یک بیت پایانی 0 هست.
به همین ترتیب اگه بخوایم بخش پذیری رو به 4 چک کنیم عدد رو به 3 اند میکنیم. چون 2 بیت پایانی 0 هست.
تو مسئله هایی که تعداد زیادی چک کردن بخش پذیری لازمه این روش کمک کنندس برای کم کردن زمان اجرا.
👍3🔥3
به یک مسئله برخوردم خیلی ساده از ما میخاد که یک آرایه از اعداد ۲ به توان n رو به دو قسمت مساوی تقسیم کنیم به شکلی که کمترین اختلاف ارزشی رو این دو قسمت داشته باشن. حالا از ما مینیموم اختلاف رو میخاد. اول با این ایده پیش رفتم که هر بار بزرگترین عدد و کوچکترین عدد رو بزاریم تو یکی از قسمت ها تا اعدادمون تموم بشه ولی خب کار نداد.
در نهایت به این نتیجه رسیدم که اگه بزرگترین عدد رو بزاریم تو یک قسمت و (n/2 -1) عدد کوچک رو بزاریم تو همون قسمت و باقی اعداد رو بزاریم تو قسمت بعدی همیشه به کمترین اختلاف میرسیم. بعد داشتم به پیاده سازیش فکر میکردم که یه نکته عجیب تر دیدم و اون اینکه اگه فقط جمع اعداد این آرایه رو تا n/2 حساب کنیم مینیموم اختلاف رو بهمون میده. همچین چیزی:
لینک مسئله:
https://codeforces.com/problemset/problem/1348/A
قبول دارم مسئله هایی که مطرح میکنم خیلی ساده ان ولی هرکدوم یه نکته قشنگی دارن.
در نهایت به این نتیجه رسیدم که اگه بزرگترین عدد رو بزاریم تو یک قسمت و (n/2 -1) عدد کوچک رو بزاریم تو همون قسمت و باقی اعداد رو بزاریم تو قسمت بعدی همیشه به کمترین اختلاف میرسیم. بعد داشتم به پیاده سازیش فکر میکردم که یه نکته عجیب تر دیدم و اون اینکه اگه فقط جمع اعداد این آرایه رو تا n/2 حساب کنیم مینیموم اختلاف رو بهمون میده. همچین چیزی:
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
typedef long long ll;
// Solve function
void solve(){
ll n;
cin >> n;
ll ans = 0;
for (int i = 1; i <= n / 2; i++){
ans += pow(2, i);
}
cout << ans << "\n";
}
// Main function
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
cin >> t;
while(t--){
solve();
}
return 0;
}
لینک مسئله:
https://codeforces.com/problemset/problem/1348/A
قبول دارم مسئله هایی که مطرح میکنم خیلی ساده ان ولی هرکدوم یه نکته قشنگی دارن.
Codeforces
Problem - 1348A - Codeforces
Codeforces. Programming competitions and contests, programming community
👍4👏1