首页 > 其他分享 >寒假第一次洛谷蓝桥个人赛 题解+补题(上)

寒假第一次洛谷蓝桥个人赛 题解+补题(上)

时间:2023-01-03 01:11:45浏览次数:64  
标签:int 题解 ll long 蓝桥 补题 sum define

传送门

部分,今天整不完了

A.带分数(补题)##

这...
话说赛时难以置信地看了好几遍题目,然后完全没思路
(我以为有什么神仙结论,压根没想暴力搜索,还是被虎到了,
然后就根本没管这道题了,不然还能骗点分

额,这代码吧,
像这种数字搜索,掌握得不太好,想起之前全排列挺折磨的(
翻题解翻到全排列函数
next_permutation()
挺好
然后看题解代码看蛮久,事实证明还是要自己想,不然看得太痛苦了

最外层while循环就是1-9的全排列,
然后里面for循环把这些数字分配给整数部分和分数部分
真的非常暴力)

`#include <bits/stdc++.h>
using namespace std;

define ll long long

define endl '\n'

int a[10];
int work(int l,int r)
{
int sum=0;
for(int i=l;i<=r;i++){
sum=sum*10+a[i];
}
return sum;
}//验证
int t,n;
int main()
{
for(int i=0;i<10;i++) a[i]=i+1;
cin>>n;
int ans=0;
do{
for(int i=0;i<7;i++){
int x=work(0,i);
if(x>n) break;
for(int j=i+1;j<8;j++){
int y=work(i+1,j),z=work(j+1,8);
if(y%z0&&x+y/zn){
ans++;
}
}
}
}while(next_permutation(a,a+9));
cout<<ans;
return 0;
}`

B.错误票据(补题)##

这题真的要炸
赛时开了一个数组,类似桶的方式储存每个数字出现的个数,
记录下最大最小值,然后跑一遍

T了,去看题解,同样都是跑一遍嘛,为啥我T
发现自己没排序(
就是有可能最小的数出现在最后,那我就出不了循环了)

然后去排序发现我也不知道这么长一数组要从哪儿排,救命
然后硬排,完美T了

好,换个方式
用推vector来排序吧
不知怎的来个MLE(它一定在逗我

行,找AC小伙伴,不信过不了
上代码
``#include <bits/stdc++.h>
using namespace std;

define endl '\n'

define ll long long

int n,a[100009],x,res,ans;
int main()
{
cin>>n;
vector v;
while(cin>>x){
v.push_back(x);
a[x]++;
}
for(int i=1;i<=100000;++i){
if(a[i]==0&&a[i+1]>0&&a[i-1]>0) res=i;
if(a[i]>1) ans=i;
}
cout<<res<<' '<<ans;
return 0;
}``

C.翻硬币##

初始状态和目标状态相比较,跑一遍就好
因为相邻两个都要改变
所以当对应不同时,当前位置翻肯定相同了
然后把后一个位置换成另一个状态,计数+1
因为题目保证有解,
所以我们只需继续这样判就好了

`#include <bits/stdc++.h>
using namespace std;

define ll long long

define endl '\n'

int main()
{
string o,s;
cin>>o>>s;
ll cnt=0;
for(ll i=0;i<o.size()-1;i++){
if(o[i]!=s[i]) {
cnt++;
if(s[i+1]'o') s[i+1]='*';
else if(s[i+1]
'*') s[i+1]='o';
}
}
cout<<cnt;
return 0;
}`

特别数的和##

看似很虎,其实很水
它已经给定4个数字了嘛
我们从1到n遍历一遍,把每个数字每个数位都提出来(满足一个计数器+1就可以break了
有四个数中的一个就行

`#include <bits/stdc++.h>
using namespace std;

define ll long long

define endl '\n'

int main()
{
ll n;
cin>>n;
ll sum=0;
for(ll i=1;i<=n;i++){
ll tem=i;
while(tem){
ll te=tem%10;
if(te2||te0||te1||te9) {
sum+=i;
break;
}
tem/=10;
}
}
cout<<sum;
return 0;
}

结束,润去睡
明天还有~

标签:int,题解,ll,long,蓝桥,补题,sum,define
From: https://www.cnblogs.com/wwww-/p/17020934.html

相关文章

  • [Phoenix基础]-- 常见问题解答
    常问问题​​我想开始 有没有凤凰HelloWorld?​​​​凤凰城有没有办法批量加载?​​​​如何将Phoenix表映射到现有的HBase表?​​​​有没有任何提示来优化凤凰?​​​​如......
  • Codeforces Good Bye 2022 CF 1770 F Koxia and Sequence 题解
    题目链接注意题目要求的是所有好序列的所有元素的XOR之和的XOR之和。我一开始以为是所有XOR之和的加法和导致不知道官方题解在讲什么。假设我们枚举一个位置\(1\lei\le......
  • 蓝桥真题——成绩统计
    题目成绩统计标签:数学暴力2020省赛代码importosimportsys#请在此输入您的代码n=int(input())level_1=level_2=0#等级1为及格,等级2为优秀forii......
  • 蓝桥真题——单词分析
    题目单词分析标签:字符串暴力2020省赛代码importosimportsys#请在此输入您的代码words=list(input())m=0m_word=''words.sort()foriinwords:......
  • 数字三角形 —— java蓝桥杯(简单)
    题目描述上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每......
  • [NOI2018] 归程 题解
    题目描述[NOI2018]归程思路题目说,所有海拔\(\leqp\)的边都会有积水,因此所有的边分为了两个集合\(S_车,S_步\),其中\(S_车\)所有的边的海拔都\(>p\),\(S_步\)反......
  • Codeforces Round 789 div2 A-E题解 & 处理手法思考
    A.TokitsukazeandAllZeroSequence这题给一个数列,每次操作对于两个不相同的数字可以吧大的变成min,两个相同的话一个变为0问最少操作多少次能将整个数组变为0首......
  • AGC059 题解 (不含 F)
    去年的比赛拖到今年发了呢...AtcoderProvingContestA.MyLastABCProblem(2000)场上打表找规律找了半天考虑如何处理单个询问。显然连续相同字母可以缩起来(即不......
  • 蓝桥杯2021
      1#include<iostream>2#include<vector>3#include<set>4usingnamespacestd;5typedefpair<int,int>PII;6typedefpair<PII,int>PIII;7vect......
  • SDK更新不了问题解决
    问题阐述相信大家在更新SDK的时候都会遇到更新不了的问题,而且打不开Google搜索,这是因为天朝墙了Google,所以要么只能通过科学上网或者改HOSTS才能访问,更新SDK!本节来介绍两种......