【蓝桥】蓝桥小白入门赛6

原题链接:第 6 场 小白入门赛 - 蓝桥云课

目录

A、元宵节快乐

B、猜灯谜

C、数学奇才

D、你不干?有的是帕鲁干!

E、等腰三角形

F、 计算方程


A、元宵节快乐

签到题

print("Today AK!")

B、猜灯谜

模拟,特判下数组首尾的情况即可。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n; cin >> n;
    vector<ll> a(n + 10);
    for (int i = 1; i <= n; i++) cin >> a[i];
    vector<ll> b;
    for (int i = 1; i <= n; i++) {
        if (i == 1) b.push_back(a[2] + a[n]);
        else if (i == n) b.push_back(a[n - 1] + a[1]);
        else b.push_back(a[i - 1] + a[i + 1]);
    }
    for (auto i : b) cout << i << " ";
    cout << endl;
    return 0;
}

C、数学奇才

操作n次,每个数都会变成正数。直接取绝对值累加即可。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
const int N = 1e5 + 10;

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n; cin >> n;
    vector<ll> a(n);
    ll sum=0;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        sum+=abs(a[i]);
    }
    cout<<sum<<endl;
    return 0;
}

D、你不干?有的是帕鲁干!

找规律 ,需要的数学知识——平方差公式 a^2-b^2 = (a+b)*(a-b)

我们可以 手动 依次枚举 两个连续正奇数的平方之差 打表 来找规律: 
  
3^2-1^2 = 8   = (3 + 1)*(3 - 1) = 4 * 2  

5^2-3^2 = 16 = (5 + 3)*(5 - 3) =8 * 2  

7^2-5^2 = 24 = (7 + 5)*(7 - 5) =12 * 2  

9^2-7^2 = 32 = (9 + 7)*(9 - 7) =16 * 2

11^2-9^2 = 40 =(11 + 9)*(11 - 9) =20 * 2  

我们可以发现,一个数 x 如果能被表示成 两个连续正奇数 a和 b 的平方之差,这个数 x 必然是8的倍数。  

同时,根据平方差公式,x 可以表示成两个数 a 和 b 的乘积。  
根据上面的推导过程 每一列最后一个等号 后面的式子,我们可以知道 a+b=x/2,a-b=2。 联立这个二元一次方程组(x是题目给的,相当于是已知的)即可求出 a=x/4+1,b=x/4-1。 

最后需要注意题目中x的范围大于等于0,所以我们需要特判 x==0的情况,直接输出“No”即可。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'

void solve() {
    ll x; cin >> x;
    if(x==0){
        cout<<"No"<<endl;
        return;
    }
    if (x % 8 == 0) {
        cout << "Yes" << endl;
        ll a = x / 2, b = 2;
        cout << x / 4 - 1 << " " << x / 4 + 1 << endl;
    }
    else cout << "No" << endl;
}

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t; cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

E、等腰三角形

贪心+双指针,需要的数学知识:三角形两边之和大于第三边。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int n; cin>>n;
    vector<ll> a(n),b(n);
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n;i++) cin>>b[i];
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    ll ans=0;
    for(int i=0,j=0;i<n;i++){
        if(a[i]*2>b[j]){
            j++;
            ans++;
        }
    }
    cout<<ans<<endl;
    return 0;
}

F、 计算方程

二分答案。套二分的模板找左边界即可(不知道模板的可以参考这篇博客https://blog.csdn.net/m0_62531913/article/details/134633501?spm=1001.2014.3001.5501)。

需要用到的数学知识——换底公式


需要用到的库函数 向下取整函数floor()

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
int k,m;

bool check(int x){
    if(sqrt(x)+floor(log(x)/log(k))-m>0) return true;
    return false;
}

void solve(){
    cin>>k>>m;
    int l=1,r=1e9;
    while(l<r){
        int mid=(l+r)>>1;
        if(check(mid)) r=mid;
        else l=mid+1;
    }
    cout<<l<<endl;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t; cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的信息,题目T1是一个单选题,执行print(5%3)语句后,输出的结果是2。所以答案是C。 根据引用中的信息,题目T3是一个单选题,已知x=3,求x//2 x**2的运算结果。根据Python的运算规则,// 是整除运算符,** 是乘方运算符。所以x//2的结果是1,x**2的结果是9。所以答案是B。 根据引用中的信息,给出了一个程序代码和其运行结果。根据程序代码,输入的字符串是"abcdef",字符是"d"。如果字符"d"在字符串中,就输出"Y",否则输出"N"。根据运行结果,"abcdef"中包含字符"d",所以输出是"Y"。同样,"abcd"中不包含字符"e",所以输出是"N"。所以答案是Y、N。 综上所述,根据提供的信息,Python蓝桥青少选拔的答案是C、B、Y、N。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [十四届蓝桥青少组省Python中高级选拔——20221030](https://blog.csdn.net/lybc2019/article/details/127879839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【蓝桥杯选拔真题28】python字符串包含字符 青少年组蓝桥杯python 选拔STEMA比真题解析](https://blog.csdn.net/frank2102/article/details/127982855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值