noip合唱隊形問題 c語言解決

2025-01-07 06:40:31 字數 1377 閱讀 5684

1樓:網友

我的ac程式。

因為相似度高,所以可以直接參考。

#include

const int maxn=105;

int n;

int t[maxn];

int f1[105],f2[105];

int main()

freopen("","r",stdin);

freopen("","w",stdout);

scanf("%d",&n);

for(int i=1;i<=n;i++)scanf("%d",&t[i]);

for(int i=1;i<=n;i++)for(int i=1;i<=n;i++)for(int j=i;j>=1;j--)if(t[j]?=f1[j]+1;

for(int i=n;i>=1;i--)for(int j=i;j<=n;j++)if(t[j]?=f2[j]+1;

int num=0;

for(int i=1;i<=n;i++)num >?f1[i]+f2[i]-1;

printf("%d",n-num);

return 0;

關於錯誤的地方:

第二段逆序求上公升序列好像有錯。

2樓:網友

你好,不好意思,c語言是在寫不了,不像c++那樣,還勉強能寫。pascal code:

varx,y,a:packed array[1..100]of longint;

n,i,j:longint;max:longint;

beginreadln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do beginx[i]:=1;

for j:=i-1 downto 1 doif (a[j]x[i]) then x[i]:=x[j]+1;

end;for i:=n downto 1 do beginy[i]:=1;

for j:=i+1 to n do

if (a[j]y[i]) then y[i]:=y[j]+1;

end;max:=0;

for i:=1 to n do

if x[i]+y[i]-1>max then max:=x[i]+y[i]-1;

writeln(n-max);

end.你自己翻譯一下吧!

3樓:網友

需要用線段樹優化……

只用單調公升序,降序加列舉中間的那個人,不優化只能對幾個點。

noip合唱隊形問題

4樓:

我明春輪的解題報告森前。

只對乙個點說激信明你演算法寫錯了。

請高手幫忙解決幾道C語言問題?高分獎賞

涓 銆 10000001 浜屻 4 a 3 b 6 c d 涓夈 乻qrt b b 4 a c 鍥涖 8 浜斻 40 鍏 乮nt long short unsingned long unsingned short 涓冦 亁銆 2鎝滐綔x銆 3 x銆 10鍏 乻qrt錛坆 b 4 a c錛 鎵嬫満涓婂...

用C語言程式設計解決如下問題(20分了,解決再追加70分,決不食言),希望高手幫我弄弄,週四之前弄好,拜託

第48題 random rdm new random int temp 臨時儲存變數 int numa new int 10 隨即獲取1000至9999之間的10個陣列元素 for int i 0 i 10 i numa i bill console.writeline numa i console...

這問題怎麼解決呀,老是執行錯誤,c語言編譯正確為什麼老是執行錯誤 ?編寫是沒問題的。求大神解決啊

1全部失敗原因一 系統問題 對於某些6代以上的主機板,我們選擇安裝windows7的系統安裝,對於老系統,也就是年代偏長的系統可能會安裝不成功或者是安裝成功之後電腦的滑鼠鍵盤不能用,同時有的就是主機板與cpu就是不支援老系統,無論你怎麼裝就是安裝不上去,此時就要考慮換新的系統進行嘗試。失敗原因二 啟...