erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#21
پاسخ : آمادگی برای مرحله ۳

کد
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;

long long l[4*1000*1000*10+10],n,k,answer,m;
vector<long long int> aval;
long long int Fi(long long x){
 long long ans=x;
 for(long long  i=0;aval[i]<x;i++){
  if(i==aval.size())break;
  if(x%aval[i]==0)ans=ans*(aval[i]-1)/aval[i];
 }
 if(ans==x)ans--;
 return ans;
}
int main(){
 ifstream fin("out.txt");
 for(long long i=0;i<2433654;i++){
  fin>>m;
  aval.push_back(m);
 }
 cin>>n>>k;
 l[1]=1;
 for(long long i=2;i<n;i++)l[i]=l[Fi(i)]+1;
 for(long long int i=0;i<aval.size();i++){
  if(aval[i]>=n)break;
  if(l[aval[i]]==k)answer+=aval[i];
 }
 cout<<answer<<endl;
  cin>>n;
 }
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#22
پاسخ : آمادگی برای مرحله ۳

سوال کسی نمی ذاره؟
آقای گوهر شادی راه سریع سوال قبلی رو لطفا بذارید
باتشکر
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#23
پاسخ : آمادگی برای مرحله ۳

برای این سوال یه ایده به ذهنم رسیده ولی وقتشو ندارم روش کار کنم ( از دست این امحانات ... )

می شه این دنباله رو از آخر بسازیم یعنی عدد اولی که حتما 1 دومین عدد هم 2 و سومی 4 یا 6 و ...

=====================

منم سه تا سوال می گم چون آسونن :
Problem 53 - Project Euler

Problem 63 - Project Euler

Problem 92 - Project Euler
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#24
پاسخ : آمادگی برای مرحله ۳

سوال 53 رو من درست نفهمیدم لطفا یه توضیحی بدید
باتشکر
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#25
پاسخ : آمادگی برای مرحله ۳

سوال 53 رو من درست نفهمیدم لطفا یه توضیحی بدید
باتشکر
میگه که برای هر n>=1 و n<=100 و r<=100 و r>=1 چندتا از c(n,r) های نه لزوما متفاوت مقدارشون از 1000000 بیشتره؟!
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#26
پاسخ : آمادگی برای مرحله ۳

92
جواب:8581146
کد
#include<iostream>
using namespace std;

int n,ans,t[1000*1000*10+10];
int m_r(int x){
 int e=0;
 while(x>0){
  e+=(x%10)*(x%10);
  x/=10;
 }
 return e;
}
void baz(int x){
 int s=m_r(x);
 if(t[s]>0){
  t[x]=t[s];
  return;
 }
 baz(s);
 t[x]=t[s];
}
int main(){
 cin>>n;
 t[1]=1;t[2]=89;t[89]=89;
 for(int i=3;i<n;i++){
  int s=m_r(i);
  if(t[s]>0)t[i]=t[s];
  else{baz(s);t[i]=t[s];}
  }
 for(int i=1;i<n;i++){
  if(t[i]==89)ans++;
 }
 cout<<ans<<endl;
 cin>>n;
 return 0;
}
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#27
پاسخ : آمادگی برای مرحله ۳

53:
کد
#include<iostream>
using namespace std;

int n,ans,c[100+10][100+10];
int main(){
 cin>>n;
 c[1][1]=1;
 for(int i=1;i<n+1;i++)c[i][0]=1;
 for(int i=2;i<=n;i++){
  for(int j=1;j<=i;j++){
   c[i][j]=c[i-1][j]+c[i-1][j-1];
   if(c[i][j]>1000*1000)ans++;
  }}
  cout<<ans<<endl;
  cin>>n;
  return 0;
 }
=====================
تو سوال 63 چه جوری باید جواب رو بدیم اخه برحسب n خواسته
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#28
آخرین ویرایش توسط مدیر
C

counterexample

Guest
#29
پاسخ : آمادگی برای مرحله ۳

53:
کد
#include<iostream>
using namespace std;

int n,ans,c[100+10][100+10];
int main(){
[COLOR=Red][B] cin>>n;[/B][/COLOR]
 c[1][1]=1;
 for(int i=1;i<n+1;i++)c[i][0]=1;
 for(int i=2;i<=n;i++){
  for(int j=1;j<=i;j++){
   c[i][j]=c[i-1][j]+c[i-1][j-1];
   if(c[i][j]>1000*1000)ans++;
  }}
  cout<<ans<<endl;
[B]  [COLOR=Red]cin>>n;[/COLOR][/B]
  return 0;
 }
=====================
تو سوال 63 چه جوری باید جواب رو بدیم اخه برحسب n خواسته
===================
کل جواب ها رو می خواد ...

یعنی برای تمام n ها !؟!
کد 92 erfankh هم همین مشکل رو داره، من نمیدونم چجوری جواب آخرشو بدست آوردین!
حالا اون دومیه واسه چیه؟ واسه این که عدد تون رو صفحه بمونه؟:36::54::54::54:
 
آخرین ویرایش توسط مدیر

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#30
پاسخ : آمادگی برای مرحله ۳

مشکلش رفع شد حواسم نبود که بعضی از اینا خیلی گنده میشه
53:جدید
کد
#include<iostream>
using namespace std;

long long int n,ans,c[1000][1000];
int main(){
 cin>>n;
 c[1][1]=1;
 for(int i=1;i<n+1;i++)c[i][0]=1;
 for(int i=2;i<=n;i++){
  for(int j=1;j<=i;j++){
   c[i][j]=c[i-1][j]+c[i-1][j-1];
   if(c[i][j]>1000*1000){ans++;c[i][j]=1000*1000;}
  }}
  cout<<ans<<endl;
  cin>>n;
  return 0;
 }
 
آخرین ویرایش توسط مدیر

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#32
پاسخ : آمادگی برای مرحله ۳

یعنی چی برای تمام n ?!!!
یعنی مثلا ثابت کن اگه n بزرگتر از یه عددی مثل k بشه دیگه چنین اتفاقی رخ نمی ده ...

بعد تمام اعداد کوچک تر از اونو بدست بیار که می شن ...
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#33
پاسخ : آمادگی برای مرحله ۳

من با این سوال اخریه هم چینی حال نکردم
کسی سوال نمی ذاره؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#34
آخرین ویرایش توسط مدیر

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#35
پاسخ : آمادگی برای مرحله ۳

اینم یه سوال راحت دیگه ... البته شبیه به این سوال توی مرحله 3 پارسال مطرح شده البته یکم فرق داشت .. )

 
آخرین ویرایش توسط مدیر

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#36
پاسخ : آمادگی برای مرحله ۳

اتل متل:

کد
#include<iostream>
using namespace std;

struct list{int am,next,back;}list[1000];
int n,k;
int del(int s,int h){
 if(h==k)return s;
 return del(list[s].next,h+1);
}
int B_G(int x,int s){
 if(x==1)return list[s].am;
 int e=del(s,1);
 list
[list[e].next].back=list[e].back;
 list
[list[e].back].next=list[e].next;
 return B_G(x-1,list[e].next);
}
int main(){
 cin>>n>>k;
 for(int i=0;i<n;i++){
  list[i].am=i+1;
  list[i].back=i-1;
  list[i].next=i+1;
 }
 list[0].back=n-1;list[n-1].next=0;
 cout<<B_G(n,0)<<endl;
 cin>>n;
 return 0;
}
===================
یکی سوال بذاره لطفا
باتشکر
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#37

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#38
پاسخ : آمادگی برای مرحله ۳

ماتریس :

کد
#include<iostream>
using namespace std;

int n,m,a[100+10][100+10],b[100+10][100+10];
int main(){
 cin>>n>>m;
 for(int i=1;i<=n;i++){
  for(int j=1;j<=m;j++){cin>>a[i][j];b[i][j]=a[i][j];}
 }
 for(int i=1;i<=n;i++){
  for(int j=1;j<=m;j++){
   b[i+1][j]+=a[i][j];
   b[i-1][j]+=a[i][j];
   b[i][j-1]+=a[i][j];
   b[i][j+1]+=a[i][j];
  }
 }
 for(int i=1;i<=n;i++){
  for(int j=1;j<=m;j++)cout<<b[i][j]<<" ";
  cout<<endl;
 }
 cin>>n;
 return 0;
}
============
سوال لطفا
باتشکر
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
#39
پاسخ : آمادگی برای مرحله ۳

رنگ کردن طبقه:


کد
#include<iostream>
#include<vector>
using namespace std;

int n,t;
vector<long long> f;
int main(){
 cin>>t;
 f.resize(50);
 for(int i=0;i<t;i++){
  cin>>n;
  f.clear();
  f[0]=1;f[1]=2;
  for(int i=2;i<=n;i++)f[i]=f[i-1]+f[i-2];
  cout<<f[n]<<endl;
 }
 cin>>n;
 return 0;
}
===================
من سوال خاصی ندارم بدم
از مسئله های الگوریتمی و یوساکو میتونم بدم
بدم؟
===============
یکی لطفا سوال بذاره باتشکر
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#40
آخرین ویرایش توسط مدیر
بالا