A题

小a的计算器(水题)

链接:https://ac.nowcoder.com/acm/contest/317/A
来源:牛客网

小a的数学基础实在太差了,以至于他只会用计算器算数。他的计算器比较特殊,只有+,−,×,/+,−,×,/(即加减乘除)四种运算。
经过一番周折,小a终于算出了他想要的数,但是他却忘记了最初的数是什么。不过幸运的是他记下了整个操作序列,他想请你帮他算出最初的数

思路

就是用个数组,将操作序列记录下来,然后逆序进行求解,这里对乘的运算的逆是除,但是,要排除除以0的情况,进行下特判

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{long long n,m;cin>>n>>m;long long op[105],x[105];for(int i=1;i<=n;i++) cin>>op[i]>>x[i];for(int i=n;i>=1;i--){if(op[i]==1) m-=x[i];else if(op[i]==2)m+=x[i];else if(op[i]==3) {if(x[i]==0) m=0;else m=m/x[i];}else m=m*x[i];}cout<<m<<endl;return 0;
}

B题

小a与204

链接:https://ac.nowcoder.com/acm/contest/317/B
来源:牛客网

小a非常喜欢204204这个数字,因为′a′+′k′=204′a′+′k′=204。
现在他有一个长度为nn的序列,其中只含有2,0,42,0,4这三种数字
设aiai为序列中第ii个数,你需要重新排列这个数列,使得∑ni=1(ai−ai−1)2∑i=1n(ai−ai−1)2最大(公式的含义是:每个数与前一个数差的平方的和)
注意:我们默认a0=0a0=0

思路

贪心,我们需要对一个序列进行排序,是的两两之差的平方,要尽可能的大。

这里我们只需要先将2 0 4这三个数的次数统计一下,然后从1开始,对于前一个数进行判断然后放值进行就行了

如果前一个数是0,那优先放4,如果4没了,就放2,如果2也没了,就放0,其他数也同理。

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{int n,m;long long ans=0;int a=0,b=0,c=0;cin>>n;for(int i=0;i<n;i++){cin>>m;if(m==0) a++;if(m==2) b++;if(m==4) c++;}int t=0;for(int i=0;i<n;i++){if(t==0){if(c>0) c--,ans+=16,t=4;else if(b>0) b--,ans+=4,t=2;else a--;}else if(t==2){if(c>0) c--,ans+=4,t=4;else if(a>0) a--,ans+=4,t=0;else b--;}else if(t==4){if(a>0) a--,ans+=16,t=0;else if(b>0) b--,ans+=4,t=2;else c--;}}cout<<ans<<endl;return 0;
}

C题

小a与星际探索

链接:https://ac.nowcoder.com/acm/contest/317/C
来源:牛客网

小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球。其中每个星球有一个能量指数pp。星球ii能到达星球jj当且仅当pi>pjpi>pj。
同时小a的飞船还有一个耐久度tt,初始时为11号点的能量指数,若小a前往星球jj,那么飞船的耐久度会变为t⊕pjt⊕pj(即tt异或pjpj,关于其定义请自行百度)
小a想知道到达nn号星球时耐久度最大为多少

注意:对于每个位置来说,从它出发可以到达的位置仅与两者的pp有关,与下标无关

思路

背包问题的dp

首先我们队这个能量指数进行排序,使得对于每个星球,在他之后的所有星球都可以从这个星球到达。

然后就开始dp呗,我自己的代码好像不是正确的。所以再贴一份官方的代码

代码

#include <bits/stdc++.h>
using namespace std;
int n;
struct node{int a,b;
}num[3005];int cmp(node x,node y){if(x.b==y.b) return x.a<y.b;return x.b>y.b;}
int main()
{std::ios::sync_with_stdio(false);cin>>n;for(int i=0;i<n;i++){cin>>num[i].b;num[i].a=i;}sort(num,num+n,cmp);int s,t;//for(int i=0;i<n;i++) cout<<num[i].a<<' '<<num[i].b<<endl;for(int i=0;i<n;i++){if(num[i].a==0) s=i;if(num[i].a==n-1) t=i;}//cout<<s<<' '<<t<<endl;if(s>t) cout<<-1<<endl;else{int dp[3005];memset(dp,0,sizeof(dp));dp[s]=num[s].b;for(int i=s+1;i<=t;i++){for(int j=s;j<i;j++){dp[i]=max(dp[i],dp[j]^num[i].b);}}if(!dp[t]) cout<<-1<<endl;else cout<<dp[t]<<endl;}return 0;
}

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int MAXN = 10003, INF = 1e9 + 10;
void chmin(int &a, int b) {a = (a < b ? a : b);}
void chmax(int &a, int b) {a = (a > b ? a : b);}
int sqr(int x) {return x * x;}
inline int read() {char c = getchar(); int x = 0, f = 1;while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f;
}
int N, mx;
bool f[MAXN][MAXN];
struct Node {int id, val;bool operator < (const Node &rhs) const {return val > rhs.val;}
}a[MAXN];
signed main() {//freopen("a2.in", "r", stdin);//cout << (457 ^ 23);N = read();for(int i = 1; i <= N; i++) a[i].id = i, a[i].val = read(); mx = 6001;sort(a + 1, a + N + 1);for(int i = 1, flag = 1; i <= N; i++) {if(a[i].id == 1) {flag = 0, f[i][a[i].val] = 1; continue;}if(flag) continue;if(a[i].id == N) {int k = i - 1;while(k && a[i].val == a[k].val) k--;if(!k) break;for(int j = mx; j >= 0; j--) {f[i][j] |= f[k][j ^ a[i].val];if(f[i][j]) {printf("%d", j); return 0;}} break;}else if(a[i].val == a[i - 1].val) {memcpy(f[i], f[i - 1], sizeof(f[i]));}else {for(int j = 0; j <= mx; j++) f[i][j] |= (f[i - 1][j ^ a[i].val] | f[i - 1][j]);     }}puts("-1");return 0;
}

D题

小a与黄金街道

链接:https://ac.nowcoder.com/acm/contest/317/D
来源:牛客网

小a和小b来到了一条布满了黄金的街道上。它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金的数量。
游戏规则是这样的:
假设道路长度为nn米(左端点为00,右端点为nn),同时给出一个数kk(下面会提到kk的用法)
设小a初始时的黄金数量为AA,小b初始时的黄金数量为BB
小a从11出发走向n−1n−1,小b从n−1n−1出发走向11,两人的速度均为1m/s1m/s
假设某一时刻(必须为整数)小a的位置为xx,小b的位置为yy,若gcd(n,x)=1gcd(n,x)=1且gcd(n,y)=1gcd(n,y)=1,那么小a的黄金数量AA会变为A∗kx(kg)A∗kx(kg),小b的黄金数量BB会变为B∗ky(kg)B∗ky(kg)
当小a到达n−1n−1时游戏结束
小a想知道在游戏结束时A+

转载于:https://www.cnblogs.com/maybe96/p/10431242.html

牛客寒假算法集训 1相关推荐

  1. 小a与204(牛客寒假算法集训营1题目B)

    链接:https://ac.nowcoder.com/acm/contest/317/B 来源:牛客网 时间限制:C/C++ 1秒, 其他语言2秒 空间限制: C/C++ 262144K,其他语言52 ...

  2. 2023牛客寒假算法集训营3

    (数学场真折磨人) A. 不断减损的时间(贪心) 题意: 给定一个数组,任意次操作,每次操作可以 选择一个偶数除以 222 . 求最终数组所有元素之和的最小值. 思路: 要使得所有元素之和最小,那肯定 ...

  3. 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱

    今天的比赛没打( 睡午觉去了,今天太累了 晚上来看看题 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱 题目传送门 板子题( 我们知道由唯一分解定理得,若 n=p1α1×p2α2×p3α3 ...

  4. 2022牛客寒假算法基础集训营6 签到题5题(附基础集训营4-6签到题总结)

    1.I-A+B问题 模拟,类似于高精度,竖式运算 #include<bits/stdc++.h> using namespace std; typedef long long LL; in ...

  5. 2022牛客寒假算法基础集训营3 签到题7题(附基础集训营1-3签到题总结)

    1.A-智乃的Hello XXXX 签到 #include<bits/stdc++.h> using namespace std; int main(){cout<<" ...

  6. (构造+二进制)2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II

    2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II 思路: 一开始我是考虑全部都是B会怎么样,然后删改,结果到后面发现很难推到普遍规律(可能是因为我没看出来). 看了题解之后,觉得这题出的挺有意 ...

  7. 2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II二进制详解

    2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II B 牛牛的DRB迷宫II 输入: 25 输出: 5 5 RBBBR BBBBB BBBDB BDBBB RBBBB 题解 由图求方案数,我们 ...

  8. 2023牛客寒假算法基础集训营4_20230130「向上取整」「夹逼dp」「lowbit科学+树状数组性质」「搜索」「倍增跳表」「莫队」

    6/13 教育场是有被教育到.(预计会鸽几题. 已过非太水的题们 //B //https://ac.nowcoder.com/acm/contest/46812/B//小构造小数学#include & ...

  9. 【解题报告】2021牛客寒假算法基础集训营4

    [解题报告]2021牛客寒假算法基础集训营4 前面的话 A :九峰与签到题 | 模拟 (签到题) B: 武辰延的字符串 | exKMP D :温澈滢的狗狗 | 二分 E: 九峰与子序列 | d p d ...

  10. 2023牛客寒假算法基础集训营1_20230116「典dp」「典set」「小思维+bfs」「小思维+构造+码力」「位运算博弈(人类智慧)」

    6/13 打得不好,这两天家里也很不好,跟做梦一样,脑子好像被僵尸吃掉了,前两个小时胡乱瞎写交题只过样例,wa了再看,什么b错都能写出来. M. M-本题主要考察了找规律_2023牛客寒假算法基础集训 ...

最新文章

  1. python序列类型举例说明_Python基础__Python序列基本类型及其操作(1)
  2. Netty详解(二)Linux 网络IO模型
  3. 大一计算机课程ppt作业,大学生计算机基础作业PPT.ppt
  4. OpenGL Compute Shader Particle System计算着色器粒子系统的实例
  5. C++ morris inorder二叉树中序遍历(附完整源码)
  6. python学习高级篇(part8)--类对象的特殊方法
  7. 文献学习(part7)--A strategy to incorporate prior knowledge into correlation network cutoff selection
  8. 安装 Alibaba Cloud Toolkit
  9. MySQL中关于OR条件的优化
  10. 成立两年估值17亿美元,这家Hinton点赞的AI芯片公司获宝马微软投资
  11. 【SSO单点系列】(6):CAS4.0 单点流程序列图(中文版)以及相关术语解释(TGT、ST、PGT、PT、PGTIOU)...
  12. Restlet 短连接问题
  13. android 声音不想从蓝牙手机中出来,Android蓝牙音频两个问题
  14. 【导数术】10.导数数列不等式
  15. 51单片机LCD1602液晶屏显示方法
  16. spark学习小象学院陈超
  17. 使用KOG数据库进行注释
  18. Mysql报错1055
  19. 终于被我搞掂了 Vue3 + Element 的正确打开方式(直接拿来就用)
  20. A1094、A1004

热门文章

  1. Domino中运用ajax判断帐号是否存在的简单例子
  2. 水晶报表基础入门——6.交叉报表设计技术
  3. 雅虎宣布支持谷歌OpenSocial标准
  4. 微信微调助手WeChatTweak for mac(微信多开和防撤回工具)最新版
  5. Image2icon for Mac(icon图标设计软件)
  6. 在MacOS系统中如何自定义屏幕保护程序?
  7. 如何在Mac上直接删除文件而不将其发送到垃圾箱?
  8. CF1067D Computer Game
  9. 遍历对象和数组的forEach函数
  10. Linux运维 第三阶段 (九)NFS