本文主要是介绍蓝桥杯day5刷题日记-分巧克力-天干地支-求和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
P8647 [蓝桥杯 2017 省 AB] 分巧克力
思路:二分查找
#include <iostream>
using namespace std;
int n,k;
int h[100010],w[100010];bool check(int x)
{int sum=0;for(int i=0;i<n;i++){sum+=(h[i]/x)*(w[i]/x);if(sum>=k) return true;}return false;
}int main()
{cin>>n>>k;for(int i=0;i<n;i++){cin>>h[i]>>w[i];}int l=1,r=100010;while(l+1<r){int mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}cout<<l; return 0;
}
P8738 [蓝桥杯 2020 国 C] 天干地支
思路:首先确定0004年是甲子年,并以此为基点。
#include <iostream>
using namespace std;
int x;int main()
{string s1[]={"jia","yi","bing","ding","wu","ji","geng","xin","ren","kui"};string s2[]={"zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"};cin>>x;if(x<4){if(x==3) cout<<"kuihai";if(x==2) cout<<"renxu";if(x==1) cout<<"xinyou";return 0;}x=(x-4)%60;60年一个循环,找出这个数在循环里的位置int a=x%10,b=x%12;然后通过求余数就可以找到答案cout<<s1[a]<<s2[b];return 0;
}
P8772 [蓝桥杯 2022 省 A] 求和
思路:先算前缀和,然后就遍历
#include <iostream>
using namespace std;
int n;
long long sum;
int a[200010];
long long q[200010];int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];q[i]=q[i-1]+a[i];}for(int i=1;i<n;i++){sum+=(q[n]-q[i])*a[i];} cout<<sum;return 0;
}
这篇关于蓝桥杯day5刷题日记-分巧克力-天干地支-求和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!