杭電ACM1003做了幾天 老出錯 10

2025-01-31 08:25:26 字數 2421 閱讀 9955

杭電acm1003做了幾天 老出錯

1樓:網友

本來不喜歡直接給你**的,不過想必你也做很長時間了,我也明白這種感覺,找不到錯在**很糾結很鬱悶,呵呵,看過後好好總結吧,把知識變成自己的,這道題就沒白做了。

解法一:直接動態規劃思想,想法比較樸素,消耗的記憶體稍微多點。

#include

using namespace std;

int a[100001],s[100001];

int main()

int n,m;

int i,j,t1,t2,max;

cin>>m;

for(j=1;j<=m;j++)

cin>>n;

for(i=1;i<=n;i++)

scanf("%d",&a[i]);

s[0]=0;

for(i=1;i<=n;i++)

if(s[i-1]+a[i]>=a[i])s[i]=s[i-1]+a[i];

elses[i]=a[i];

max=int_min;

for(i=1;i<=n;i++)

if(s[i]>max)

max=s[i];

t2=i;t1=t2;

for(i=t2-1;i>=1;i--)

if(s[i]>=0)

t1=i;else

break;

printf("case %d:%d %d %d",j,max,t1,t2);

if(jusing namespace std;

int main()

int n,m;

int t1,t2,tag1,tag2,d,a,max;

cin>>n;

for(int i=1;i<=n;i++)cin>>m;

t1=t2=tag1=tag2=1;

cin>>d;

max=d;

for(int j=2;j<=m;j++)scanf("%d",&a);

if(d<0)

else if(d>max)

printf("case %d:%d %d %d",i,max,tag1,tag2);

if(iprintf("");

return 0;

2樓:網友

我覺得我這樣做也可以,可不知道為什麼提交上去是wrong answer,麻煩我看一下。

#include

using namespace std;

int main()

int t,n,*a,max=0,d,k,m=0,*p,*q;

cin>>t;

if(t<1||t>20) exit(0);

p=new int[t];

q=new int[t];

while(m>n;

if(n<1||n>100000) exit(0);

a=new int[n];

cin>>*a;

max=d=*a;

for(int j=1;j>*(a+j);

if(*(a+j)<-1000||*a+j)>1000)exit(0);

d+=*(a+j);

if(d>=max)

max=d;

k=j;(p+m)=max;

q+m)=k+1;

m++;for(int i=0;icout<<*p+i)<<" "<<"1 "<<*q+i)

杭電acm1030,求解題思路?

3樓:網友

剛在別人那看到這個題。寫了點思路,複製給你吧。

已經知道了起點m和終點n,現在就是要找到乙個通用的規律讓m儘快到達n。

由圖形中可以看出,假設乙個起點是處於三角形的頂部,比如1,2,4,5,7,9...

那麼它到它下面某一層的點的距離都是一樣的,比如1到2和1到4。比如2到10和2到12和2到14。等等。

根據這個規律我們可以想到,如果n是在m為頂點的三角形的下面,那麼只要找出之間隔了有多少層,問題就解決了。

如果m不是三角形的頂點,我們可以找到m所在的最小的三角形,比如6就是2,8就是4,13就是7...

如何判斷是否在某點下面,首先終點n的值我們是知道的,我們可以算出它所在的層數。

那麼m和n之間的層數差我們就知道了,我們可以算出頂點的左右邊界,如何加以判斷。

在的話,規律很好找。不在的話,在左右邊界中找到n最近的邊界點,算出差值,就是額外的步數,再加上到這一層的步數。

找規律的話,假設頂點f(x)在第x層,那麼它到下一層x+1層的右邊界就是 f(x)+2*x-1 左邊界就是f(x)+2x+1,依次類推,每隔一層頂點到邊界的步數就加2。

當然你也可以找通用表示式,這個事情我就不做了。

純手打,可能沒表達清楚,可以一起**。

杭電 1002 ACM 除錯都出錯。

大整數加法。沒明白你的 scanf d d a,b 是什麼意思。我的 可以通過。include include char a a int sum 大整數相加,並返回結果位數。int largeadd char a,char a,int len,int len 先相加,再處理進位,res裡是先低位再高...

杭電與桂電,杭電和桂電差距為什麼這麼大?

除了地理優勢外沒什麼優勢 .全國大學生電子設計競賽獲獎情況桂電強點 杭電才個一等獎 全國多名 桂電乙個最高獎索尼杯個一等獎 全國第五。.地理位置,杭州是省會,位於東部沿海地區,繁華,交通方便。桂林是中等城市,地處廣西,著名的旅遊城市,雖然交通也比較方便,火車站機場都有。但確實無法和杭州相比。.文化氛...

杭電2019哪裡錯了,杭電2054哪裡錯了

兩個地方,陣列不夠大,結尾小數點要去掉,但是超時了,ac的 在最後 include include char fun char s int main b 100000 陣列開大while scanf s s a,b return 0 char fun char s if f 去掉尾部的0 if s ...