又考试了,这次题明显感觉难多了,骗了不少分,竟然rk13

第一题一看不可做,然后看第二题

第二题一开始也没有思路,然后我就看上了k<=1的情况,

显然k=0时只要求所有数的gcd即可,

k=1的话枚举每一个树,给它加1,再求gcd,取gcd最大值

然后看第三题,k<=4有10%的数据,而且样例已经告诉你了k=2和k=3的答案,

那么剩下的只有k=0或k=1或k=4;

k=0是0,k=1是1,k=4的话数据小,dfs暴力跑出来了。

这样我就想着暴力跑更多的点,于是有了下面的暴力代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define ll long long
 6 #define re register
 7 using namespace std;
 8 const ll mod=1e9+7;
 9 ll tot,ans=0,son[10005][3];
10 bool vis[10005];
11 ll to[10005],nxt[10005],pre[10005],cnt;
12 inline void add(re ll u,re ll v){
13     cnt++,to[cnt]=v,nxt[cnt]=pre[u],pre[u]=cnt;
14 }
15 inline void build(re ll k,re ll l,re ll r){
16     if(l==r) return ;
17     if((k<<1)>tot) return ;
18     son[k][1]=k<<1;
19     son[k][2]=k<<1|1;
20     ll mid=(l+r)>>1;
21     build(k<<1,l,mid);
22     build(k<<1|1,mid+1,r);
23 }
24 inline void DFS(re ll x,re ll now){
25     for(re ll i=1;i<=2;i++){
26         if(son[now][i]==0) continue;
27         add(x,son[now][i]),add(son[now][i],x);
28         DFS(x,son[now][i]);
29     }
30 }
31 inline void dfs(re ll x){
32     ans++;
33     vis[x]=1;
34     for(re ll i=pre[x];i;i=nxt[i]){
35         if(!vis[to[i]])
36             dfs(to[i]);
37     }
38     vis[x]=0;
39 }
40 signed main(){
41     //freopen("data.out","w",stdout);
42     for(re ll i=1;i<=10;i++){
43         cnt=0;
44         memset(pre,0,sizeof(pre));
45         tot=(1<<i)-1;
46         build(1,1,tot);
47         for(re ll j=1;j<=tot;j++){
48             DFS(j,j);
49         }
50         ans=0;
51         for(re ll j=1;j<=tot;j++){
52             dfs(j);
53             ans=((ans>=mod)?(ans-mod):ans);
54         }
55         cout<<"ans"<<i<<"="<<ans<<endl;
56     }
57     return 0;
58 }

View Code

但是它很不给力,两个小时只跑出5个点,然后没办法就粘上去了

然后又看第二题

越看越像二分,然后打了个二分,模了几个样例都过了,复杂度也差不多,就交上去了

最后第一题只好cout<<0<<endl;竟然还有20分!

20+40+10=70,我真是撞大运了

附:二分40分代码(其实这题不具备决策单调性,二分是错误的)

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define MAXN 105
 5 #define ll long long
 6 #define re register
 7 using namespace std;
 8 ll n,k,a[MAXN],gcd,r=0,l=1,mid,ans=0,max_day,max_a;
 9 ll b[MAXN];
10 bool is_stop[MAXN];
11 inline ll GCD(ll a,ll b){
12     return b==0?a:GCD(b,a%b);
13 }
14 inline ll judge(ll x){
15     memset(b,0,sizeof(b));
16     memset(is_stop,0,sizeof(is_stop));
17     ll res=0;
18     for(re ll i=x;i<=max_day;i+=x){
19         for(re ll j=1;j<=n;j++){
20             if(is_stop[j]) continue;
21             b[j]+=x;
22             if(b[j]>=a[j]){
23                 res+=(b[j]-a[j]);
24                 is_stop[j]=1;
25             }
26         }
27     }
28     return res;
29 }
30 inline ll max(ll a,ll b){return a>b?a:b;}
31 signed main(){
32     scanf("%lld%lld",&n,&k);
33     if(k==0){
34         for(re ll i=1;i<=n;i++){
35             scanf("%lld",&a[i]);
36             if(a[i]==1){
37                 cout<<1<<endl;
38                 return 0;
39             }
40             if(i==1) gcd=a[i];
41             else gcd=GCD(gcd,a[i]);
42         }
43         printf("%lld\n",gcd);
44         return 0;
45     }
46     if(k==1){
47         for(re ll i=1;i<=n;i++){
48             scanf("%lld",&a[i]);
49             if(i==1) gcd=a[i];
50             else gcd=GCD(gcd,a[i]);
51         }
52         for(re ll i=1;i<=n;i++){
53             a[i]++;
54             ll temp=a[1];
55             for(re ll j=2;j<=n;j++){
56                 temp=GCD(temp,a[j]);
57             }
58             a[i]--;
59             gcd=max(gcd,temp);
60         }
61         printf("%lld\n",gcd);
62         return 0;
63     }
64     for(re ll i=1;i<=n;i++){
65         scanf("%lld",&a[i]);
66         r=max(r,a[i]);
67     }
68     max_a=r;
69     r+=k;
70     while(l<=r){
71         mid=(l+r)>>1;
72         if(max_a%mid==0) max_day=max_a;
73         else max_day=(max_a/mid+1)*mid;
74         if(judge(mid)<=k){
75             ans=max(ans,mid),l=mid+1;
76         }else r=mid-1;
77     }
78     printf("%lld\n",ans);
79     return 0;
80 }

View Code

转载于:https://www.cnblogs.com/Juve/p/11206353.html

20190718考试70分记相关推荐

  1. CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版

    CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版 一.题目: 二.Java70分答案 import java.util.ArrayList; import java.uti ...

  2. 第二十四次CSP考试第二题,速度拿70分。

    csp第二题典型特征就是很容易就能拿到70分,并且不需要考虑太多东西. 题目描述: 题解: #include<iostream> #include<map> #include& ...

  3. 7-4 哈利·波特的考试 (25 分)(C语言实现)

    7-4 哈利·波特的考试 (25 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向 ...

  4. 7-6 哈利·波特的考试 (8 分)

    7-6 哈利·波特的考试 (8 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ...

  5. 焊工考试多少分及格?焊工考试答题技巧分享

    一.焊工考试多少分及格? 焊工特种作业操作证考试80分就算及格,特种作业操作证考试分理论和实际操作证两项考试:理论是微机考试,从题库自动抽取题目.实际操作证考试包括模拟操作.口试等. 焊工职业资格证书 ...

  6. 计算机一级70分是什么等级,公务员笔试行测70分是个什么水平?

    本帖数据来源于2019年湖北省考. 在我们上小学的时候,考卷面分70%的那一定是很差劲了,如果在初中,也是在中游偏下水平,到了高中,这分数就能到中间了.如果是资格考试,考7成的分数就万事大吉了,但是在 ...

  7. 7-6 哈利·波特的考试 (15 分)

    7-6 哈利·波特的考试 (15 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向 ...

  8. 7-1 哈利·波特的考试 (25分)

    7-1 哈利·波特的考试 (25分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ...

  9. PTA 哈利·波特的考试 (25分)

    哈利·波特的考试 (25分) 题目链接 问题描述: 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe ...

最新文章

  1. QT实现Media Player(媒体播放器)
  2. 汉寿县智慧城市建设PPP项目成功签约
  3. 解决VS命令提示符 “Setting environment for using Microsoft Visual Studio. 此时不应有“系列错误
  4. PHP网站管理系统-EBCMS易贝管理系统 v1.2.0
  5. python正则表达式代码_python正则表达式的使用(实验代码)
  6. SpringMVC 框架系列之组件概述与配置详解
  7. Android 5.0以上heads up通知
  8. Jenkins配置ansible
  9. 便携式车用CAN分析仪-DBC解码、J1939和图形化分析
  10. windows主题Mac OS 风格 BigSur主题美化
  11. matlab天线阵列分析,基于Matlab的阵列天线数值分析
  12. 招财宝计算器android,招财宝收益计算器
  13. 微信登录报错40125和-6签名秘钥问题解决方案
  14. 五个最佳媒体格式转换器
  15. org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured
  16. vue使用vue-video-player实现web视频直播展示m3u8格式
  17. 【100%通过率】华为OD机试真题 C++ 实现【简单的自动曝光】【2022.11 Q4 新题】
  18. Unsupported Personality :UNKNOWN
  19. 六级核心词汇讲解 (1~30)
  20. 【知识分享】电子元器件封装(文末有资料)

热门文章

  1. [bzoj3625][Codeforces 250 E]The Child and Binary Tree(生成函数+多项式运算+FFT)
  2. windows 邮槽mailslot 在服务程序内建立后客户端无权限访问(GetLastError() == 5)的问题...
  3. html5 - history 历史管理
  4. js基础练习---面向对象浅理解分析
  5. 学习Nutch不错的系列文章
  6. ArcGIS 9.2 Server Pack 5 蓄势待发
  7. 【Python爬虫学习笔记1】网络协议及请求基础
  8. SQL语句:从一个表里按年份统计条目数
  9. 前端lvs访问多台nginx代理服务时出现404错误的处理
  10. SANS研究所:7大最危险的攻击技术介绍