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 個...