好坑,我想的是找出單調序列,從小到大依次賦值,序列最大的點先放著,之後根據兩邊的值確定每個最大點處的值。最後乙個點wa(-3分)
code1
#include using namespace std;
typedef long long ll;
int d[10005];
int main()
}if(j==n) j--;
if(j==i) f=0;//f=0 是單增
if(f==0)
i=j; //i=j-1修改為i=j
}else
for(int i=0;i建樹(給出中序,前序)拼題a上做過類似的click(滿分)
code3#include using namespace std;
typedef long long ll;
int n;
int in[25],pre[25];//中序和先序
int tree[25][3];
void build(int l,int r,int l1,int r1)
if(i!=r1)
}struct nodetemp;
int flag[25];//每層標記
int main()
if(tree[temp.index][1]!=0)
if(tree[temp.index][2]!=0)
}return 0;
}
環+最短路,我居然不會找環,寫了個垃圾演算法,tle了!!(-6分)
題意:給定乙個有向圖,邊權為s、d,存在環則輸出impossible,否則輸出ok,然後對每個詢問,輸出一條從入度為0的點到該點的最短路徑
code4
#include using namespace std;
typedef long long ll;
int n,m;
struct nodetemp;
vectorg1[1006];//反
int s1[1006][1006];
int d1[1006][1006];
int f[1006];//環標記
int flag=0;
int now;
void dfs1(int x,int cnt,vectorv)//查詢環
return ;
}else
if(flag) printf("impossible.\n");
else printf("okay.\n");
int q;
scanf("%d",&q);
while(q--)
if(f[t])
s_=int_max;
d_=0;
stackst;
st.push(t);
dfs(t,st,0,0);
while(!ans.empty())
printf("\n");
}return 0;
}
PAT(甲級)2023年秋季考試
題意 n 只熊貓排成一排喝奶。每只熊貓至少分配 200ml 的牛奶,如果乙個熊貓比它旁邊的熊貓重,那麼就需要比旁邊的熊貓至少多喝 100ml 的牛奶。如果體重相同,分配的牛奶要相同。問最少需要分配多少的牛奶,才能滿足要求 思路 從左往右掃一遍,每只熊貓都和左邊的比。然後從右往左掃一遍,每只熊貓都和右...
2019秋季PAT甲級考試心得
第一道題一共四個測試點,做了乙個小時,有兩個測試點沒過,得了12 20分 做題的時候遇到乙個問題,就是include之後,使用pow 10,n 計算報錯具有多個定義之類的 具體忘了怎麼說的了,sqrt也會報錯,有空的時候看看是什麼原因,上次pat考試也遇到了這個問題,而且後來忘了這回事,一直沒解決,...
PAT(乙級)2023年秋季考試
模擬。include using namespace std int sum string s int main else 模擬。include using namespace std int func int n int res 0 while mul return res int main in...