目录

  • 前言
    • L.牛牛学走路
      • MyCode
      • OtherCode
    • J.小朋友做游戏
      • MyCode
    • A.九小时九个人九扇门
      • MyCode
    • F. 中位数切分
      • MyCode

前言

根据难度系数补题,大概会补 ACDEFHIJL (因为我的学长也做了这么多题)

L.牛牛学走路

题意 :
模拟上下左右,问什么时候的距离最大

思路 :
对于样例ttt和nnn,范围乘起来不超过1e51e51e5,所以想了想我们可以使用栈模拟

我们将LRLRLR和UDUDUD分为这两组,如果当前栈顶元素不同于当前的S[i]S[i]S[i]那么我们

就开始计算,并且更新答案


但是其实不用栈来模拟,因为使用栈来模拟,对于计算答案的时候,我们总是需要想

一下,虽然思路清晰但是码量较大,所以我们不妨看一下别人的代码,显然他们也是

分了两组,但是使用的是两个变量进行计算,这样子就可以更好的Ac

MyCode
double cal(int x,int y){return x*x + y*y;
}
void solve()
{int n;cin>>n;string s;cin>>s;ans = 0 ;while(!xlen.empty()) xlen.pop();while(!ylen.empty()) ylen.pop();for(int i = 0 ; i< n;i ++ ){if(s[i] == 'L'  || s[i] == 'R'){if(xlen.empty()){xlen.push(s[i]);ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);continue;}if(xlen.top() == s[i]){xlen.push(s[i]);ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);continue;}else{ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);xlen.pop();ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);}}if(s[i] == 'U' || s[i] == 'D'){if(ylen.empty()){ylen.push(s[i]);ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);continue;}if(ylen.top() == s[i]){ylen.push(s[i]);ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);continue;}else{ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);ylen.pop();ans = max(sqrt(cal(xlen.size(),ylen.size())),ans);}}}printf("%.12lf\n",ans);
}
OtherCode
double get_dist(int x, int y){return sqrt(x * x + y * y);
}void solve() {int n;cin >> n;int x = 0, y = 0;double res = 0;for(int i = 0 ; i < n ; i ++) {char c;cin >> c;if(c == 'L') x --;else if(c == 'R') x ++;else if(c == 'U') y ++;else y --;res = max(res, get_dist(x, y));}cout << fixed << setprecision(10) << res << "\n";
}

J.小朋友做游戏

题意 :
给你 A 和 B 两组小朋友,B的小朋友不能连在一起
我们需要选出 n 个人,使得价值最大

思路 :
显然因为 A 的小朋友不会打架,所以我们可以从 A 的小朋友这里入手 , 对于当前的状

态,如果确定A的数量为 ia 那么B的数量一定是 n-ia

当且仅当 : (n−ia<min(n/2,b))&&(n−ia)>0(n-ia < min(n/2,b)) \&\&(n-ia) >0(n−ia<min(n/2,b))&&(n−ia)>0

这个条件保证了,在BBB数量够的情况下,确保一定不会出现相连的情况

但是这种情况下还需要考虑价值最大 :

所以我们需要对两个价值数组排序+前缀和处理一下

这样子在每次拿的情况下,我们 就是尽可能多的拿


我的思路太混乱了,不够简洁。所以在做的时候,一开始歪成了dp[N][2]dp[N][2]dp[N][2],利用

状态机进行逐个dpdpdp,但是因为没有审题的原因,没发现是环状,所以总会贪心的多

拿一个bbb,所以就歪了好久

MyCode
bool cmp(int a,int b){return a>b;
}void solve()
{cin>>a>>b>>n;for(int i=1;i<=a;i++) cin>>va[i];for(int i=1;i<=b;i++) cin>>vb[i];sort(va+1,va+1+a,cmp);sort(vb+1,vb+1+b,cmp);/**判断不能的情况 **/    int ans =  -1 ;if(a < (n+1)/2){cout<<-1<<endl;return;}for(int i=1;i<=a;i++) suma[i] = suma[i-1]+ va[i];for(int i=1;i<=b;i++) sumb[i] = sumb[i-1]+ vb[i];for(ia = 0 ;ia<=a;ia++){ib = n-ia;if(ib>min(n/2,b)) continue;if(ib<0)continue;ans = max(ans,suma[ia]+sumb[ib]);}if(ans==-1)cout<<-1<<endl;elsecout<<ans<<endl;}

A.九小时九个人九扇门

思路 :
背包问题求方案数,首先多弄几组你就会发现 数字根 = X%9

所以我们可以使用老方法 :

状态表示 : f[i][j]f[i][j]f[i][j] 前iii个物品里面选价值是jjj的方案数

初始化f[0][0]=1f[0][0]=1f[0][0]=1,然后通过枚举jjj来进行状态计算即可

MyCode
typedef priority_queue<int,vector<int>,greater<int>>  Pri_m;
typedef pair<int,int> pii;
typedef vector<int> VI;
map<int,int> mp;const int N  = 1e5+10,MOD = 998244353;
int f[N][10],a[N];
int n;
inline void cal(int i,int x){if(x<10) {a[i]  = x;return;}a[i] = x%9;
}
void solve()
{cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;cal(i,x);}f[0][0] = 1;for(int i=1;i<=n;i++){for(int j=0;j<=8;j++ ){f[i][(a[i]+j)%9] = (f[i][(a[i]+j)%9] + f[i-1][j])%MOD;f[i][j] = (f[i-1][j] + f[i][j])%MOD;}}for(int i=1;i<=8;i++)cout<<f[n][i]<<' ';cout<<f[n][0]-1<<endl;}
/**mYHeart is my algorithm**/
int main()
{//int t;cin>>t;while(t -- )solve();return 0;
}

F. 中位数切分

思路 :
贪心的去想,两两分成一组,如果大于mmm贡献加一否则减一

MyCode
void solve()
{int n,m;cin>>n>>m;int ans = 0 ;for(int i=1;i<=n;i++){int x;cin>>x;if(x >= m) ++ans;else --ans;}if(ans > 0 )cout<<ans<<endl;else cout<<-1<<endl;
}

[nk] 2022牛客寒假算法基础集训营1 补题|题解相关推荐

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

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

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

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

  3. 牛客寒假算法基础集训营6补题和题解

    这是寒假写的题解,不知道为什么没发出去... 总结: 牛客做多了可以学很多奇葩的开数组方法和很多奇妙的方法!感觉题目出的不错2333 A.出题 链接:https://ac.nowcoder.com/a ...

  4. 2022牛客寒假算法基础集训营4 签到题7题

    1.E-真假签到题 不难发现,或者随便枚举一下,可以得到f(n)=n的结论 #include<bits/stdc++.h> typedef long long LL; using name ...

  5. 2022牛客寒假算法基础集训营2 签到题7题

    1.C 小沙的杀球 如果你能够杀球但不杀球,虽然回复了体力,但你后续可能会没有机会继续杀球,并且杀球次数相同,那么回复的体力是相同的,所以在同等条件下,我们应该尽可能多的杀球. 不开long long ...

  6. 2022牛客寒假算法基础集训营1 签到题7题

    1.L.牛牛学走路 恭喜你 签到成功 #include<bits/stdc++.h> using namespace std; int main(){int T; cin>>T ...

  7. 2022牛客寒假算法基础集训营

    2022牛客寒假算法基础集训营1 C-Baby's first attempt on CPU D-牛牛做数论 已知欧拉函数 ϕ ( x ) \phi(x) ϕ(x)是满足 1 ≤ y ≤ x 1\le ...

  8. 2022牛客寒假算法基础集训营1 L E J H F C D A I (9/13)

    2022牛客寒假算法基础集训营1 L E J H F C D A I (9/13) L 牛牛学走路 思路: 模拟,用一个 M A X MAX MAX存储. 参考代码: #include<bits ...

  9. 2022牛客寒假算法基础集训营1 ——H 牛牛看云

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 就像罗夏墨迹测试一样,同一片形状的云在不同人的眼中会看起来像各种各样不同的东西. 例如,现在天上飘过了一片长条状的云彩,hina说这片云长得 ...

最新文章

  1. Python函数中的参数(一)
  2. 资源|2019 年 11 月最新《TensorFlow 2.0 深度学习算法实战》中文版教材免费开源(附随书代码+pdf)...
  3. pytorch 卷积核
  4. 使用WPF动画编程的几点注意事项[转]
  5. IDEA常用快捷键整理20191105
  6. VTK:图表之ScaleVertices
  7. UnpooledHeadByteBuf源码分析
  8. Spark入门:也可以用Java创建轻量级的RESTful应用程序
  9. java 基本数据类型和包装类型
  10. 这就是数据分析之算法认知
  11. 【转】php中XML、XSLT的结合运用
  12. android 软解8k视频,一种基于CPU的8K超高清视频高速解码方法与流程
  13. 目标跟踪系列三:ECO: Efficient Convolution Operators for Tracking(2016年11月)
  14. 静态成员变量与静态成员函数的声明与定义
  15. 洗护用品标准号,有害添加剂介绍和注意事项
  16. 字典、集合、控制语句
  17. HTML中overflow的作用
  18. python 月日年转年月日_在Python中将年/月/日转换为年份
  19. 通信原理学习笔记5-2:数字调制——连续相位和恒包络问题(非线性功放、连续相位CP FSK信号、最小频移键控MSK、GMSK)
  20. 【2022.7.11】HTML基础介绍语法常用标签超文本链接锚点定位

热门文章

  1. 我的世界热力膨胀JAVA_我的世界1.12-1.6.4热力膨胀 Thermal Expansion Mod下载
  2. 010 editor如何复制16进制
  3. 九宫格拼图android代码,Android 多图上传后将图片进行九宫格展示的实例代码
  4. SoK: The Faults in our ASRs: An Overview of Attacks against Automatic Speech Recognition (题目过长)阅读笔记
  5. 生物信息_odds_ratios、Likelihood_Ratios、发病率、frequency
  6. 划分vlan实验心得体会_计算机网络实验心得体会_计算机网络实验工作感想
  7. excel隔行填充颜色的三种方法
  8. Mac安装Node-sass报错 warning: loop variable ‘numerator‘ creates a copy from type ‘const std::string
  9. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
  10. 药物中毒急救 matlab