title: ACM-NEFU15届校赛-大二组
tags:

  • ACM
    abbrlink: 8a3e9951
    date: 2020-12-09 17:46:31

A.小林找工作

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN=1e5+10;
  4. int p[MAXN];
  5. int main()
  6. {
  7. int n,m;
  8. cin>>n>>m;
  9. for(int i=1;i<=n;i++)
  10. {
  11. scanf("%d", &p[i]);
  12. }
  13. sort(p+1,p+n+1);
  14. for(int i=0;i<m;i++)
  15. {
  16. int temp;
  17. scanf("%d", &temp);
  18. int pos=lower_bound(p+1,p+n+1,temp)-p;
  19. if(pos>n) pos=n;
  20. int ans=abs(temp-p[pos]);
  21. if(pos!=1) ans=min(ans, abs(temp-p[pos-1]));
  22. printf("%d\n", ans);
  23. }
  24. return 0;
  25. }

B.xx的树

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN=2e5+10;
  4. typedef long long ll;
  5. typedef struct{
  6. int to;
  7. int next;
  8. }edge;
  9. edge e[MAXN];
  10. int cur=1,head[MAXN],vis[MAXN];
  11. ll value[MAXN];
  12. void add(int u,int v)
  13. {
  14. e[cur].to=v;
  15. e[cur].next=head[u];
  16. head[u]=cur++;
  17. }
  18. void dfs(int u)
  19. {
  20. vis[u]=1;
  21. for(int i=head[u];i!=0;i=e[i].next)
  22. {
  23. int v=e[i].to;
  24. if(vis[v]) continue;
  25. value[v]+=value[u];
  26. dfs(v);
  27. }
  28. }
  29. int main()
  30. {
  31. int n,m;
  32. cin>>n>>m;
  33. for(int i=1;i<n;i++)
  34. {
  35. int u,v;
  36. cin>>u>>v;
  37. add(u,v);
  38. add(v,u);
  39. }
  40. for(int i=1;i<=m;i++)
  41. {
  42. ll u,d;
  43. cin>>u>>d;
  44. value[u]+=d;
  45. }
  46. dfs(1);
  47. for(int i=1;i<=n;i++)
  48. i==1?cout<<value[i]:cout<<" "<<value[i];
  49. return 0;
  50. }

C.xx玩游戏

找到规律,偶数列没有必败态,奇数列有(n+1)/2个必败态

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. int main()
  5. {
  6. int t;
  7. cin>>t;
  8. while(t--)
  9. {
  10. ll n;
  11. scanf("%lld", &n);
  12. ll t=(n+1)/2;
  13. ll lose=(1+t)*t/2;
  14. ll sum=(1+n)*n/2;
  15. printf("%lld\n", sum-lose);
  16. }
  17. return 0;
  18. }

D. xx的零食店(待补)

E.qyh的签到题

跟去年校赛大一的一道题神似…

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,q;
  4. typedef long long ll;
  5. const long long mod=1e9+7;
  6. const int MAXN=1e5+5;
  7. ll d1[MAXN],d2[MAXN],d3[MAXN];
  8. void pre_sum(ll d[])
  9. {
  10. for(int i=1;i<=n;i++)
  11. {
  12. d[i]+=d[i-1];
  13. d[i]%=mod;
  14. }
  15. }
  16. int main()
  17. {
  18. scanf("%d%d",&n, &q);
  19. for(int i=0;i<q;i++)
  20. {
  21. int type,pos;
  22. scanf("%d%d", &type, &pos);
  23. if(type==1) d1[pos]++;
  24. if(type==2) d2[pos]++;
  25. if(type==3)
  26. {
  27. d3[pos]++;
  28. d3[pos+1]++;
  29. }
  30. }
  31. pre_sum(d3); pre_sum(d3); pre_sum(d3);
  32. pre_sum(d2); pre_sum(d2);
  33. pre_sum(d1);
  34. for(int i=1;i<=n;i++)
  35. {
  36. i==1?printf("%lld", (d1[i]+d2[i]+d3[i])%mod):printf(" %lld", (d1[i]+d2[i]+d3[i])%mod);
  37. }
  38. return 0;
  39. }

G.天哥的序列