#16585: 給延平的同仁 c++ AC


089487 (089487)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 82069
來源 : [140.112.150.137]
最後登入時間 :
2024-10-03 16:28:37
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [61.230.103.76] | 發表日期 : 2019-01-18 17:53

#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,num=0,m=0,a,b,t;
while(cin>>a>>b)
{
num=0;
cout<<a<<" "<<b;
if(a>b)
{
t=b;
b=a;
a=t;
}
for(int i=a;i<=b;i++)
{
m=0;
n=i;
while(n!=1)
{
//cout<<i<<endl;
m++;
n=(n%2==1)?3*n+1:n/2;
}
//cout<<n<<endl;
m++;
if(m>num) num=m;
}
printf(" %lld\n",num);
}
}

 
#16586: Re:給延平的同仁 c++ AC


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.149.175]
最後登入時間 :
2024-11-18 16:24:11
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [223.140.203.160] | 發表日期 : 2019-01-18 20:22

#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,num=0,m=0,a,b,t;
while(cin>>a>>b)
{
num=0;
cout<<a<<" "<<b;
if(a>b)
{
t=b;
b=a;
a=t;
}
for(int i=a;i<=b;i++)
{
m=0;
n=i;
while(n!=1)
{
//cout<<i<<endl;
m++;
n=(n%2==1)?3*n+1:n/2;
}
//cout<<n<<endl;
m++;
if(m>num) num=m;
}
printf(" %lld\n",num);
}
}

所有數字應該是int就夠了吧
還有試試看用位元運算加快速度

 
#17336: Re:給延平的同仁 c++ AC


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [114.42.219.193] | 發表日期 : 2019-04-05 16:03

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char** argv){

int a,b,d,e,f;

ios::sync_with_stdio(false);<----------

cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體

while(cin>>a>>b){

cout<<a<<' '<<b<<' ';

if(a>b){

f=a;

a=b;

b=f;

}

f=0;

for(int c=a;c<=b;c++){

e=0;

d=c;

while(d!=1){

if(d%2==1)

d=3*d+1;

else 

d=d/2;

e++;

}

if(e>f)

f=e;

}

cout<<f+1<<'\n';

}

}

我因為不知道a可能比b大,而吃了一次WA



 
#17339: Re:給延平的同仁 c++ AC


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.149.175]
最後登入時間 :
2024-11-18 16:24:11
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [223.137.108.36] | 發表日期 : 2019-04-05 16:11

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char** argv){

int a,b,d,e,f;

ios::sync_with_stdio(false);<----------

cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體

while(cin>>a>>b){

cout<<a<<' '<<b<<' ';

if(a>b){

f=a;

a=b;

b=f;

}

f=0;

for(int c=a;c<=b;c++){

e=0;

d=c;

while(d!=1){

if(d%2==1)

d=3*d+1;

else 

d=d/2;

e++;

}

if(e>f)

f=e;

}

cout<<f+1<<'\n';

}

}

我因為不知道a可能比b大,而吃了一次WA



這題測資不大
,加:

ios::sync_with_stdio(false);

cin.tie(0);

的作用不大,而且多使用這些函數會增加些許記憶體用量

建議測資大小超過5MB時再加

這題要加速可以使用位元運算,或是解題報告的方法

 
#17341: Re:給延平的同仁 c++ AC


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [114.42.219.193] | 發表日期 : 2019-04-05 16:19

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char** argv){

int a,b,d,e,f;

ios::sync_with_stdio(false);<----------

cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體

while(cin>>a>>b){

cout<<a<<' '<<b<<' ';

if(a>b){

f=a;

a=b;

b=f;

}

f=0;

for(int c=a;c<=b;c++){

e=0;

d=c;

while(d!=1){

if(d%2==1)

d=3*d+1;

else 

d=d/2;

e++;

}

if(e>f)

f=e;

}

cout<<f+1<<'\n';

}

}

我因為不知道a可能比b大,而吃了一次WA



這題測資不大
,加:

ios::sync_with_stdio(false);

cin.tie(0);

的作用不大,而且多使用這些函數會增加些許記憶體用量

建議測資大小超過5MB時再加

這題要加速可以使用位元運算,或是解題報告的方法

謝學長,我懂了


 
#17343: Re:給延平的同仁 c++ AC


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.149.175]
最後登入時間 :
2024-11-18 16:24:11
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [223.137.108.36] | 發表日期 : 2019-04-05 16:24

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char** argv){

int a,b,d,e,f;

ios::sync_with_stdio(false);<----------

cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體

while(cin>>a>>b){

cout<<a<<' '<<b<<' ';

if(a>b){

f=a;

a=b;

b=f;

}

f=0;

for(int c=a;c<=b;c++){

e=0;

d=c;

while(d!=1){

if(d%2==1)

d=3*d+1;

else 

d=d/2;

e++;

}

if(e>f)

f=e;

}

cout<<f+1<<'\n';

}

}

我因為不知道a可能比b大,而吃了一次WA



這題測資不大
,加:

ios::sync_with_stdio(false);

cin.tie(0);

的作用不大,而且多使用這些函數會增加些許記憶體用量

建議測資大小超過5MB時再加

這題要加速可以使用位元運算,或是解題報告的方法

謝學長,我懂了


關於

ios::sync_with_stdio(false);

cin.tie(0);

的補充資料:

http://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/

https://blog.kuoe0.tw/posts/2013/02/22/acm-icpc-about-io/

 
#17347: Re:給延平的同仁 c++ AC


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
c039. 00100 - The 3n + 1 problem -- UVa100 | From: [114.42.219.193] | 發表日期 : 2019-04-05 16:37

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char** argv){

int a,b,d,e,f;

ios::sync_with_stdio(false);<----------

cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體

while(cin>>a>>b){

cout<<a<<' '<<b<<' ';

if(a>b){

f=a;

a=b;

b=f;

}

f=0;

for(int c=a;c<=b;c++){

e=0;

d=c;

while(d!=1){

if(d%2==1)

d=3*d+1;

else 

d=d/2;

e++;

}

if(e>f)

f=e;

}

cout<<f+1<<'\n';

}

}

我因為不知道a可能比b大,而吃了一次WA



這題測資不大
,加:

ios::sync_with_stdio(false);

cin.tie(0);

的作用不大,而且多使用這些函數會增加些許記憶體用量

建議測資大小超過5MB時再加

這題要加速可以使用位元運算,或是解題報告的方法

謝學長,我懂了


關於

ios::sync_with_stdio(false);

cin.tie(0);

的補充資料:

http://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/

https://blog.kuoe0.tw/posts/2013/02/22/acm-icpc-about-io/

謝學長,但我兩個都曾看過XD


 
ZeroJudge Forum