福州大學第十一屆程式設計競賽

2021-06-21 20:12:36 字數 1796 閱讀 3092

problem a 大王叫我來巡山吶

題意:第一天是星期一,求n天中有多少個星期六或者星期天

水題,直接求

#include #include#include#include#include#includeusing namespace std;

int main()

return 0;

}

problem b 防守陣地 i

題意:在n的數中取m個連續的,使得1*a[k]+2*a[k+1]+...+m*a[k+m]最大

分析:先求sum[i]為從i開始的m個數的和,先求最開始m個數的答案,然後向後推,ans[i]=ans[i-1]-sum[i]+a[i+m]*m,比較求最大

#include #include#include#include#define n 1000005

using namespace std;

int sum[n],a[n];

int main()

j=1;

sum[j]=0;

ans=0;

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

j++;

for(i=m+1;i<=n;i++,j++)

tmp=ans;

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

printf("%d\n",ans);

}return 0;

}

problem c shadow

從根節點開始dfs求每個結點的父節點,從士兵結點開始往根節點遍歷,標記遍歷到的點,求標記點的叛軍總和,存邊不要用vector,會re

#include #include#include#include#define n 100005

#includeusing namespace std;

int cnt,vis[n],mark[n],pre[n],num[n],a[n],head[n];

struct edgee[n*2];

void addedge(int u,int v)

void dfs(int u)

}}int main()

cnt=0;

memset(vis,0,sizeof(vis));

memset(mark,0,sizeof(mark));

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

while(k--)

for(i=1;i

problem e 防守陣地 ii

線段樹,還不會,再看看用樹狀陣列能不能做

problem g nostop

矩陣快速冪

#include #include#include#include#include#define inf -1

#define ll __int64

#define n 55

using namespace std;

ll n;

struct matrix;

matrix mul(matrix a,matrix b)else if(ret.m[i][j]>a.m[i][k]+b.m[k][j])}}

}return ret;

}void solve(matrix a,ll k)

}k--;

while(k)

printf("%i64d\n",tmp.m[1][n]);

}int main()

while(h--){

scanf("%i64d%i64d%i64d",&u,&v,&w);

if(w

中南林業大學第十一屆程式設計競賽

theme 有很多砝碼,質量為w的0次方 1次方 n次方,每個砝碼都只有乙個。有乙個天平,給定乙個重物重量為m,問能否通過放置重物和砝碼使得天平平衡,重物和砝碼可以放在一邊或兩邊。2 w 10 9,1 m 10 9 solution 如果砝碼只能放在一邊,則若m w i,或1 w 0 w 1.w i...

西南民族大學第十一屆程式設計競賽 e題

時間限制 c c 1秒,其他語言2秒 空間限制 c c 102400k,其他語言204800k 64bit io format lld 題目描述 hjgg現在有乙個大小為 n 公尺 m 公尺 的矩形花園。由於hjgg有強迫症,所以這片花園被劃分nm個為1 1 平方公尺 的方格。現在,hj想在這片花園...

第十一屆藍橋杯

問題描述 小藍要為一條街的住戶製作門牌號。這條街一共有 2020 位住戶,門牌號從 1 到 2020 編號。小藍製作門牌的方法是先製作 0 到 9 這幾個數字字元,最後根據需要將字 符貼上到門牌上,例如門牌 1017 需要依次貼上字元 1 0 1 7,即需要 1 個 字元 0,2 個字元 1,1 個...