آرشیو سوالات از گذشته تا کنون

Pa-W-kY

کاربر جدید
ارسال‌ها
3
امتیاز
1
نام مرکز سمپاد
علامه حلی 2
شهر
tehran
پاسخ : آرشیو سوالات از گذشته تا کنون



×حالا یک سوال دیگه مطرح میشه که ایا شما میتونی بدون دستور شرطی abs رو بنویسی ؟
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

این یک راه حل دیگه برای سوالی که در ابتدا مطرح شد:
http://paste.ubuntu.com/7907245/

شروع میکنیم از عدد ها یدونه یدونه کم می کنیم. اولین مقداری که صفر شد، مقدار اولیه اش رو که قبلا کپی گرفتیم چاپ می کنیم. یه آرایه به طول n میخونه و کوچکترینشو چاپ می کنی. فقط برای اعداد مثبت کار می کنه. منفی اش هم میشه نوشت ولی راه من کثیف کاری میشه.

کد:
//Bismillah
#include<iostream>
using namespace std;
bool check(int a[], int n)
{
     for (int i=0;i<n;i++)
         if (a[i]==0)
            return true;
     return false;
}    


int main()
{
    int n; //tedade adad ha
    cin>>n;
    int a[500],b[100];
    for (int i=0;i<n;i++)
    {
        cin>>a[i];
        b[i] = a[i];     
    }
    while (!check(a,n)) //while (check==false)
    {
          for (int i=0;i<n;i++)
              a[i]--;            
    }
    for (int i=0;i<n;i++)
        if (a[i]==0)
        {
                    cout<<b[i]<<endl;
                    system("pause");
                    return 0;
        }

}
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

به نقل از PaWkY :
Hala 1soale dige matrah mishe ke aia shoma mitooni bedone dastoore sharti abs ro benevisi ?
این راه هست. یک کم خلاقانه است! ولی ممکنه قبول نکنید ولی جواب میده!

کد:
int abs(int n) 
{
  return sqrt(n*n);
}
 

Anita H

کاربر فوق‌حرفه‌ای
ارسال‌ها
571
امتیاز
2,987
نام مرکز سمپاد
حلّی ۲
شهر
تهران
سال فارغ التحصیلی
1396
مدال المپیاد
کامپیوتری بودم
دانشگاه
شریف
رشته دانشگاه
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

به نقل از PaWkY :
Hala 1soale dige matrah mishe ke aia shoma mitooni bedone dastoore sharti abs ro benevisi ?
کد:
( ( ( n mod n * ( n - 1 ) ) + n * ( n - 1 ) ) mod n * ( n - 1 ) ) mod n * ( n + 1 )
اگه جرئت دارید براش مثال نقض پیدا کنید
دهنم سرو** شد تا رابطه ش رو پیدا کردم :|

ویرایش: البته نمیدونم درسته یا نه...،
+ در حالت کلی، این رابطه کوتاه تر هست ولی چون اکثر کامپایلرهای Cpp توی عمل باقیمانده ی اعداد منفی اشتباه کار میکنند، یه قسمتی رو مجبور شدم اضافه کنم
+ خودم مثال نقض پیدا کردم: اعداد صحیح -2 تا +2
+ اولویت با عمل ضرب هست
 

Pa-W-kY

کاربر جدید
ارسال‌ها
3
امتیاز
1
نام مرکز سمپاد
علامه حلی 2
شهر
tehran
پاسخ : آرشیو سوالات از گذشته تا کنون

به نقل از amoo.majid :
کد:
( ( ( n mod n * ( n - 1 ) ) + n * ( n - 1 ) ) mod n * ( n - 1 ) ) mod n * ( n + 1 )
اگه جرئت دارید براش مثال نقض پیدا کنید
دهنم سرو** شد تا رابطه ش رو پیدا کردم :|

ویرایش: البته نمیدونم درسته یا نه...،
+ در حالت کلی، این رابطه کوتاه تر هست ولی چون اکثر کامپایلرهای Cpp توی عمل باقیمانده ی اعداد منفی اشتباه کار میکنند، یه قسمتی رو مجبور شدم اضافه کنم
+ خودم مثال نقض پیدا کردم: اعداد صحیح -2 تا +2
+ اولویت با عمل ضرب هست

×اگه mod هم بدون دستور شرطی بنویسی من دیگه حرف ندارم ;;)
 

Anita H

کاربر فوق‌حرفه‌ای
ارسال‌ها
571
امتیاز
2,987
نام مرکز سمپاد
حلّی ۲
شهر
تهران
سال فارغ التحصیلی
1396
مدال المپیاد
کامپیوتری بودم
دانشگاه
شریف
رشته دانشگاه
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

به نقل از PaWkY :
Age modam bedoone dastoore sharti benevisi man dige harfi nadaram ;;)
=))
کد:
a mod b = a - ( b * int( a / b ) )

ضرب و جمع و تقسیم رو هم بدون شرط بنویسم الآن؟ :))
اونا رو هم اگه بخواید با عملگرهای بیتی میشه بدون شرط نوشت :-"

×علی[میم]: فعلن قفل تا بعدش با یه تاپیکی ترکیب شه :D
×amoo.majid: خب از خودت مایه بذار، چرا از طرف من حرف میزنی؟ :د
 

فات

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,467
امتیاز
5,381
نام مرکز سمپاد
فرزانگان
شهر
نیشابور
سال فارغ التحصیلی
1395
دانشگاه
علامه طباطبایی
رشته دانشگاه
اقتصاد نظری
پاسخ : آرشیو سوالات از گذشته تا کنون

اینجوری مسابقه گذاشتن واسه فرومی مثه سمپادیا نمیشه. :)
باید الگوی مشاعره ای داشته باشه :-"

×علی : خب اینجام که دیگه نیاز نیس ، فلن قفل تا بعد ...
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

سلام.

سوال 121 SGU: این راهی که من میگم درسته؟ شروع کنیم از همه ی راس ها (جزیره ها) dfs بزنیم و به هر شهر که وارد شدیم، رنگ پل اش رو یک مقدار bool بدیم و هر سری اون bool رو 0 و 1 کنیم. یعنی b = !b کنیم برای راس بعدی (من تو کدم یه اینت گرفتم). بعد اتمام هر بار dfs، ببینیم تو شرط مسئله صدق می کنه یا نه. اگر پس از این که از همه ی راس ها dfs زده شد و جالت مسئله پیدا نشد، no solution چاپ کنیم.

این کدی هستش که تا الان تونستم بنویسم:
http://paste.ubuntu.com/8139530/


خروجی رو توی یه آرایه دو بعدی ذخیره می کنیم که مقدار خونه ی سطر i ام و ستون j ام اش، میشه رنگ بین جزیره i و j. کد تقریبا واضحه. یه تابع چک داره که بعد از هربار dfs صدا میزنیم آیا شرط مسئله پیدا شده یا نه.

ممنون میشم کسی بگه راهم درسته یا نه.
 

demo

کاربر نیمه‌فعال
ارسال‌ها
13
امتیاز
-1
نام مرکز سمپاد
!
شهر
!
پاسخ : آرشیو سوالات از گذشته تا کنون

میشه لطفا به این سوال پاسخ بدید؟
 

demo

کاربر نیمه‌فعال
ارسال‌ها
13
امتیاز
-1
نام مرکز سمپاد
!
شهر
!
پاسخ : آرشیو سوالات از گذشته تا کنون

خواهش میکنم یکی جواب سوال بالاییو بده لطفاا
 

Anita H

کاربر فوق‌حرفه‌ای
ارسال‌ها
571
امتیاز
2,987
نام مرکز سمپاد
حلّی ۲
شهر
تهران
سال فارغ التحصیلی
1396
مدال المپیاد
کامپیوتری بودم
دانشگاه
شریف
رشته دانشگاه
کامپیوتر
پاسخ : آرشیو سوالات از گذشته تا کنون

به نقل از demo :
در یک نشست بین المللی 1985 نفر شرکت کرده اند. در هر مجموعه ای از سه شرکت کننده حداقل دو نفر هستند که به یک زبان گفتگو می کنند. اگر هر نفر حداکثر به 5 زبان مسلط باشد. در این صورت ثابت کنید حداقل 200 نفر به یک زبان گفتگو می کنند.
اگه هر دو نفری رو بگیری حداقل یه زبون مشترک بلد باشن، یه نفر دلخواه در نظر بگیر، چون حداکثر ۵ تا زبون بلده پس طبق لانه کبوتری یکی از زبونا هستش که به اندازه ی سقف 1984/5 یعنی 397 نفر با اون زبون صوبت میکنن که خب این عدد از 200 بیشتره
وگرنه دو نفر هستن که هیچ زبون مشترکی ندارن. فرض کنید این دو نفر مجموعن k تا زبون بلدن. حالا اگه هر کدوم از ۱۹۸۳ نفر دیگه رو در نظر بگیری، واضحه که هر کدوم باید بلد باشن با حاقل یکی از این k زبون صوبت کنن. پس یکی از این k زبون هستش که سقف ۱۹۸۳ تقسیم بر k نفر با اون زبون حرف میزنن. با توجه به این که ماکزیمم مقدار k برابر ۱۰ هستش، سقف ۱۹۸۳ تقسیم بر k حداقل برابر ۱۹۹ هست. این ۱۹۹ نفر و یکی از اون دو نفر که اون اول در نظر گرفتیم و هیچ زبون مشترکی نداشتن، حداقل ۲۰۰ نفر رو تشکیل میدن :-"
به نقل از demo :
خواهش میکنم یکی جواب سوال بالاییو بده لطفاا
آرومتر ;;)
 
بالا