J题 攻击力进阶测试

攻击力进阶测试

题目一看就是树状数组+二分查找,树状数组维护前缀和,用二分查找找第一次可以打穿多少墙;

但就是WA了好几发;

赛后一看,错在了最后取整上(虽然我也不知道为什么ceil就是不行);

反正以后就用第二种写法了!!!

错误的代码ceil(1.0*getsum(n)/d)

正确的代码✔:getsum(n)+d-1)/d

#include<bits/stdc++.h>
using namespace std;
#define int long long
int c[200005];
int lowbit(int x){return x&(-x);}
void update(int x,int y,int n){//单点更新for(int i=x;i<=n;i+=lowbit(i)) c[i] += y;
}
int getsum(int x){int ans = 0;for(int i=x;i;i-=lowbit(i)) ans+=c[i];return ans;
}
signed main()
{cin.tie(0);ios::sync_with_stdio(0);int t;cin>>t;while(t--){memset(c,0,sizeof c);long long n;cin>>n;for(int i=1;i<=n;i++){int a;cin>>a;update(i,a,n);}int m;cin>>m;for(int i=0;i<m;i++){int x;cin>>x;if(x==1){int y,z;cin>>y>>z;int zz=getsum(y)-getsum(y-1);update(y,z-zz,n);}else {int d;cin>>d;int l=0,r=n+1,mid;int ans=0;while(l<r){mid=(l+r)>>1;if(getsum(mid)>d){r=mid;}else {ans=mid;l=mid+1;}}cout<<ans<<" "<<(getsum(n)+d-1)/d<<endl;}}}}

G题 带黄狗的礼物

带黄狗的礼物

一句话的题目:带黄狗要去超市买礼物,有n种礼物。它需要买m个,每种礼物可以重复选择,请问带黄狗可以有多少种买礼物的方案。

从同学的答案中看出答案是:

(虽然不知道为什么……)

如果要硬凑的话,那么可以这么想

有一个m*n的格子,你站在(0,1)这个位置,你只要一走到[1,m]行的任何一列上,你就买了这一列的礼物了,此后你就只能买你这个礼物一样或者比这个礼物种类高的礼物了。从(0,0)点开始,到(m,n)点结束。

例如:m=3,n=5;你要买 种类2的1个礼物,种类4的1个礼物,那么你的路径规划是这样的;

 所以在m+n-1中选择m个

#include<bits/stdc++.h>
using namespace std;
# define LL long long
const int mod=1e9+7;
LL qmi(LL a,LL k,LL p)
{LL res=1;while (k){if(k&1)res=res*a%p;a=a*a%p;k>>=1;}return res;
}
LL p[20000007];
int main()
{p[0]=1;int n,m;cin>>n>>m;for(int i=1;i<=20000000;i++){p[i]=p[i-1]*i;p[i]=p[i]%mod;}cout<<(((p[m+n-1]*qmi(p[m],mod-2,mod))%mod)*qmi(p[n-1],mod-2,mod))%mod;return 0;
}

D题 逃离符联网

D-逃离符联网

赛后重新看了一遍题目,发现并不是一天只能走一个格子(啊这……);

一天能走好几个格子也就是说 对于所有能通关路上的最大值来说,要找到最小值;

看了同学答案,知道了是dfs+二分答案,dfs来判断能不能通关,二分答案来找最小值;

#include<bits/stdc++.h>
using namespace std;
#define int long long
int mp[611][611],n,m;
int sx,sy,ex,ey;
bool vis[611][611];
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
bool check(int sx,int sy,int k){bool f=0;if(sx==ex&&sy==ey)return 1;for(int i=0;i<4;i++){int x=sx+dx[i],y=sy+dy[i];//这里要换变量if(vis[x][y]||x<1||x>n||y<1||y>m||mp[x][y]>k)continue;//注意n和m,不要反了!!vis[x][y]=1;f=f|check(x,y,k);}return f;
}
signed main()
{cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>mp[i][j];}}cin>>sx>>sy>>ex>>ey;int l=mp[sx][sy],r=n*m*2,ans=l;while(l<r){memset(vis,0,sizeof vis);int mid=(l+r)>>1;if(check(sx,sy,mid))r=mid;else l=mid+1;}cout<<r;return 0;
}

多比特杯第四届ACM程序设计竞赛同步赛相关推荐

  1. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

  2. “师创杯”山东理工大学第九届ACM程序设计竞赛 正式赛 F.校赛~校赛~【思维+规律题】

    校赛~校赛~ Time Limit: 1000MS  Memory Limit: 65536KB Submit  Statistic Problem Description SDUT 的校赛是从 20 ...

  3. 牛客练习-哈尔滨理工大学21级新生程序设计竞赛(同步赛)

    比赛链接:哈尔滨理工大学21级新生程序设计竞赛(同步赛) 文章目录 前言 正文 A.考试周破防 B.咖啡店 C.kiki和bob玩取石子 D.猴王kiki分桃 E.很二的拆分 F.构造字符串 G.信号 ...

  4. 第八届“图灵杯”NEUQ—ACM程序设计竞赛个人赛(同步赛)

    A题--切蛋糕 龙龙有一块蛋糕,现在他想将蛋糕平均切成k块,分给他的k名hxd.但是不幸的是,因为龙龙不擅长切蛋糕,他每一次只能将一块蛋糕平均分成两份.例如,将一块大小为1的蛋糕分割成两块大小为1/2 ...

  5. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解

    文章目录 A.点对最大值 B.减成一 C.面积 D.扔硬币 E.赛马 F.三角形 G.养花 H.直线 I.字典序 J.最大值 A.点对最大值 链接:https://ac.nowcoder.com/ac ...

  6. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) F

    F 三角形 链接:https://ac.nowcoder.com/acm/contest/5758/F 来源:牛客网 小明有一根长度为a的木棒,现在小明想将木棒分为多段(每段木棒长度必须为整数), 使 ...

  7. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 点对最大值 dp

    链接:https://ac.nowcoder.com/acm/contest/5758/A 来源:牛客网 题目描述 这里有一棵树,每个点和每条边都存在一个价值.对于树上点对的价值,包括点对的起点和终点 ...

  8. 2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛)错题笔记

    目录: 题目链接 A 比比谁更大 B 过生日 D 机器人 G 拼牛牛 I 史莱姆 J 水题 K 烧烤丝瓜 L 歪脖子树下的灯 题目链接 A 比比谁更大 题目描述 在一个夜黑风高的晚上,牛哥哥吃完心爱的 ...

  9. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛题解

    A,C,I签到题,只搞了8题,还一题是神仙做的,我不会 链接:https://www.nowcoder.com/acm/contest/122/B 来源:牛客网 取石子 时间限制:C/C++ 1秒,其 ...

  10. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛B 取石子(博弈SG函数模板)

    题目链接:取石子 链接:https://www.nowcoder.com/acm/contest/122/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65 ...

最新文章

  1. 让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》
  2. 了解CUDA计算(一)
  3. python程序设计语言的执行方式_编程语言用Python执行程序的4种方式
  4. 什么是flowable
  5. webpack搭建服务器,随时修改刷新
  6. 3天,我用Python手撕了一个深度学习框架!
  7. 单利计算与复利计算程序
  8. c++ sort 从大到小排序_常用排序算法速度比较
  9. MT4用EA测试历史数据时日志出现:stopped because of stop out
  10. 许愿墙 php源码,许愿网许愿墙 v1 共享版
  11. HTML学习之制作导航网页
  12. Mind+实例5——打地鼠游戏
  13. 运算放大器介绍与应用电路(LM358)
  14. Turtle库画小猫咪
  15. TLF80511TC 是一款线性低压差稳压器—科时进商城
  16. UE4对接腾讯GME语音服务(实时语音一)
  17. UC手游平台九游已成与91手机助手、360并列的国内三大手机游戏平台
  18. 给定秒数 seconds ,把秒转化成小时、分钟和秒
  19. 1.RecyclerView设置clipToPadding=“false“,scrollbars无法跟随列表滚动到底部的解决方案
  20. Java 模板引擎主流,freemaker ,thymeleaf (技术的介绍,重要是理解)(学成在线day04)

热门文章

  1. 使用谷歌浏览器下载的图片webp怎么转成jpg格式图片
  2. RPG Maker MZ如何导入dlc素材?
  3. 用rhino做一个地球_2
  4. CuteFTP实用技巧
  5. QQ游戏连连看自动化脚本(仅限学习交流)
  6. 怎样在中国消灭IE6浏览器
  7. 深度linux清理空间,怎样清理内存缓存
  8. ASP发送邮件的代码
  9. 修改VMware硬盘序列号SN
  10. 机器学习之多项式拟合