برنامه نویسی

  • شروع کننده موضوع شروع کننده موضوع zabolian
  • تاریخ شروع تاریخ شروع
پاسخ : برنامه نویسی

نمی‌دونم به دردتون بخوره یا نه، (شاید بهتر باشه آقای زابلیان هم نظرشون رو بگن)، اما من برای اینکه خودم بدونم حدودا چه سوالایی رو باید حل کنم، یه برنامه‌ای نوشتم و بعدا گذاشتم تا بقیه هم استفاده کنند:
http://users.allamehelli.ir/~m_kholdi/spat/analyze.php?ID=X
به جای X شماره‌ی ID اس.جی.یو رو بذارین. نتایجش خیلی قابل اعتماد نیست، اما با تقریب خوبی سوال‌ها رو به ترتیب سختی مشخص می‌کنه.
در مورد اینکه بخواید سوال‌های ساده‌ی اس.جی.یو رو نزنید و مستقیما برید دنبال سوال‌های خوبش، به نظر من فعلا کار خوبی نیست. شما اول باید به کد زدن عادت کنید، و برای این کار به نظر من خیلی خوبه که سوال‌های آسون رو هم بزنید، حتی اگه به نظر مسخره می‌اومد. بعضی وقت‌ها یه تکنیک‌هایی هست که کد زدن رو ساده می‌کنه که یا باید خودتون زیاد کد بزنید که بفهمید، یا یه کسی که بهش رسیده بهتون بگه.
 
پاسخ : برنامه نویسی

مرسی
حالا برم ببینم واقعا سوالت پیشنهادیش در سطح (پایین) منن یانه.
بازم ممنون از کمکتون.
 
پاسخ : برنامه نویسی

به نقل از مهران :
نمی‌دونم به دردتون بخوره یا نه، (شاید بهتر باشه آقای زابلیان هم نظرشون رو بگن)،



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

به نظر شما چندتا accept تو sgu داشته باشیم برای امتحان برنامه نویسی خوبه؟
 
پاسخ : برنامه نویسی

هر چی بیشتر بهتر! ;D
ولی با اطلاعات فعلی ( اگه الگوریتم‌ زیاد بلد نیستید ) احتمالا تا حدود ۴۰ یا ۵۰ تا میتونید داشته باشید. ( و فکر کنم اگه همین حدود ۴۰ تا داشته باشید واسه امتحان کافی باشه! )
به حدود ۲۰ که رسیدید، سراغ usaco هم برید.
 
پاسخ : برنامه نویسی

کسی اینجا به یه نفر توی کمیته المپیاد دسترسی نداره ازش بپرسه برگه های روز اول رو تصحیح کردن یانه؟
 
پاسخ : برنامه نویسی

توی امتحان باشگاه سوالا فقط کار با داده های عددین یا کاراکتر و گرافیک و ...... هم هست؟
 
پاسخ : برنامه نویسی

سوال‌ها هر جوری ممکنه باشن، اما گرافیکی نیستن (یعنی شما هیچ چیزی رو روی صفحه رسم نمی‌کنید)
 
پاسخ : برنامه نویسی

کد:
#include<iostream>
using namespace std;
int main()
{
    unsigned int n,i;
    cin>>n;
    unsigned int h;
    h=0;
    for(i=1;i<=n;i++){
    int a;
    a=((i)*(i+1))%3;
    if(a==0)
    h=h+1;
    }
    cout<<h;
    return 0;
}

تو اس جی یو اینو می دم تو تست شماره ی 8 اشتباه جواب میده ،اول فکر کردم مشکل از اینه که دامنه ی اینتجر تو مساله جواب نمیده،عوضش کردم بازم همون مشکلو داشت
اینم لینک مساله

http://acm.sgu.ru/problem.php?contest=0&problem=105
 
پاسخ : برنامه نویسی

خب، درست فکر کردی. توی integer، صرفا تا [tex]2^{31}-1[/tex] جا می‌شه. اما تو یه جایی نوشتی : (i * (i+1 که از محدوده‌ی int می‌زنه بیرون. (وقتی به unsigned int تبدیلش کنی، صرفا تا [tex]2^{32}-1[/tex] رو پشتیبانی می‌کنه، که باز هم کمه) برای اعداد بزگتر از این محدوده، از یه type به اسم long long استفاده می‌شه. یعنی به جای int، بذار long long. توی این نوع از داده، تا عدد [tex]2^{63}-1[/tex] جا می‌شه.
البته وقتی این رو درست کنی، باز هم تایم می‌شی، چون الگوریتم‌ت [tex]O(n)[/tex] هستش.
 
پاسخ : برنامه نویسی

سلام داش حامد!
مسئله‌ی نسبتا جالب و در عین حال بسیییییییییییییار راحتیه!
با این روش (اینکه بیای تک تک چک کنی که آیا به 3 بخش پذیرند یا نه) هر کار کنی الگوریتمت از
mimetex.cgi
بهتر نمیشه (دلیلش بسیار واضحه!) و چون رنج n نسبتا زیاده، برنامه مشکل زمان پیدا میکنه. به فکر یه راه دیگه باش!
اگه می‌خوای یه راهنمایی توپ بشی! برنامتو یه جور تغییر بده که مثلا به ازای n مساوی 1 تا 100، 100 تا جواب رو هر کدوم توی یک خط چاپ کنه!
فکر کنم متوجه جواب بسیار ساده‌ی مسئله بشی! ;)
 
پاسخ : برنامه نویسی

کد:
#include<iostream>
using namespace std;
int main()
{
    unsigned int n;
    cin>>n;
   unsigned int h,m;
   h=(n+1)/3;
   m=(n+1)%3;
   if(m==0)
   cout<<h*2 - 1;
   else if(m=!0)
   cout<<2*h ;
    return 0;
}
اینو زدم اکسپت شد،
منظورتو نفهمیدم سعادت،منظورت این بود؟



http://acm.sgu.ru/problem.php?contest=0&problem=102
این یکیم بی زحمت یکی ترجمه کنه ،نفهمیدم یعنی چی
 
پاسخ : برنامه نویسی

سوال ۱۰۲ میگه که:

یه عدد n بهت میدیم ( n بین ۱ تا ۱۰۰۰۰ است ) تعداد اعداد طبیعی کوچکتر مساوی n که نسبت به n اول است رو چاپ کن ( منظورم از نسبت به n اول اینه که ب.م.م اون عدده با n بشه ۱ )

مثلا به ازای n=9 اعداد ۱ و ۲ و ۴ و ۵ و ۷ و ۸ ( ۶ تا عدد ) ب.م.م شون با ۹ میشه ۱. پس باید در خروجی تعداد این اعداد ( ۶ ) رو چاپ کنید!
 
پاسخ : برنامه نویسی

به نقل از حامد مهدوی :
کد:
#include<iostream>
using namespace std;
int main()
{
    unsigned int n;
    cin>>n;
   unsigned int h,m;
   h=(n+1)/3;
   m=(n+1)%3;
   if(m==0)
   cout<<h*2 - 1;
   else if(m=!0)
   cout<<2*h ;
    return 0;
}
اینو زدم اکسپت شد،
منظورتو نفهمیدم سعادت،منظورت این بود؟

دقیقا....
توی مسائل اینجوره معمولا یک راه برای محاسبه‌ی مستقیم جواب وجود داره.
اگه با یه کم فکر کردن متوجه چیز خاصی نشدی، بیا جواب‌ها را به ازای ورودی‌های مختلف چاپ کن یا اگه راحته روی کاغذ بنویس، معمولا متوجه یک نظم منطقی بین ورودی و خروجی میشی.
اینجاست که استقرا در برنامه نویسی کامپیوتر معنی پیدا می‌کنه! ;)
 
پاسخ : برنامه نویسی

به نقل از مهران :
نمی‌دونم به دردتون بخوره یا نه، (شاید بهتر باشه آقای زابلیان هم نظرشون رو بگن)، اما من برای اینکه خودم بدونم حدودا چه سوالایی رو باید حل کنم، یه برنامه‌ای نوشتم و بعدا گذاشتم تا بقیه هم استفاده کنند:
http://users.allamehelli.ir/~m_kholdi/spat/analyze.php?ID=X
به جای X شماره‌ی ID اس.جی.یو رو بذارین. نتایجش خیلی قابل اعتماد نیست، اما با تقریب خوبی سوال‌ها رو به ترتیب سختی مشخص می‌کنه.
در مورد اینکه بخواید سوال‌های ساده‌ی اس.جی.یو رو نزنید و مستقیما برید دنبال سوال‌های خوبش، به نظر من فعلا کار خوبی نیست. شما اول باید به کد زدن عادت کنید، و برای این کار به نظر من خیلی خوبه که سوال‌های آسون رو هم بزنید، حتی اگه به نظر مسخره می‌اومد. بعضی وقت‌ها یه تکنیک‌هایی هست که کد زدن رو ساده می‌کنه که یا باید خودتون زیاد کد بزنید که بفهمید، یا یه کسی که بهش رسیده بهتون بگه.
خیلی ممنون از این برنامه !
خیلی به درد من خورد ! کلی از دیروز تا حالا سوال آسون حل کردم ! :دی
 
پاسخ : برنامه نویسی

کد:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N=1000+5;
int a[N][N],n,m;
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			scanf("%d", &a[i][j]);
	for(int j=m-1;j>=0;j--){
		for(int i=n-1;i>=0;i--){
			if(i-1>=0 && j+1<=m-1)
				a[i][j]=min(a[i][j],a[i-1][j+1]);
			if(j+1<=m-1)
				a[i][j]=min(a[i][j],a[i][j+1]);
			if(i+1<=n-1)
				a[i][j]=min(a[i][j],a[i+1][j]);
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++)	
			printf("%d ",a[i][j]);
		printf("\n");
	}
	return 0;
}

سلام
من این کد رو برای سوال 168 از sgu زدم ولی تایم میشه!
میشه بگین چرا تایم میشه و این که چی کار میشه کردش؟
 
پاسخ : برنامه نویسی

یکی یه لینک دانلود turbo c++ درست حسابی میده؟
من هرچی گرفتم تا حالا خراب بوده
 
پاسخ : برنامه نویسی

به نقل از منجم! :
یکی یه لینک دانلود turbo c++ درست حسابی میده؟
من هرچی گرفتم تا حالا خراب بوده
خراب نبوده بايد بري از تو منوها آدرس فايلاشو درست كني !

البته احتمالا اگه تو درايو سي بريزي اجرا شه ;)
 
پاسخ : برنامه نویسی

به نقل از Dr.Eniac :
خراب نبوده بايد بري از تو منوها آدرس فايلاشو درست كني !

البته احتمالا اگه تو درايو سي بريزي اجرا شه ;)
ها؟؟؟؟
میشه بیش توضیح بدی؟
حالا یه لینک هم بذار! ;D
 
پاسخ : برنامه نویسی

به نقل از منجم! :
یکی یه لینک دانلود turbo c++ درست حسابی میده؟
من هرچی گرفتم تا حالا خراب بوده
به نظرم از dev استفاده کنی بهتره. البته فک کنم با گرافیک مشکل داره.(اگه کارتون گرافیکی نیست dev خیلی بهتره)
 
Back
بالا