北华大学第九届程序设计竞赛(同步赛)

北华大学第九届程序设计竞赛(同步赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

目录

A-"北华"有几何_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

B-学霸题 II_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

C-小杜的字符串_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

D-矿石精炼场_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

G-114514国_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

H-杰哥的激光炮_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

M-超时空传送!!偷袭_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)


A-"北华"有几何_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

签到题 

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;

int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cout<<11;
	return 0;
}

B-学霸题 II_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

对于每一个数字,比它小的数加和,比他大的个数*这个数,如何加和即为结果

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
int n;
int h[N];
int m;
int b[N];
ll c[N];
ll sum;
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
    for(int i=0;i<n;i++)cin>>h[i];
    cin>>m;
    for(int i=0;i<m;i++)cin>>b[i];
    sort(b,b+m);
    c[0]=b[0];
    for(int i=1;i<m;i++)c[i]=b[i]+c[i-1];
    for(int i=0;i<n;i++){
        int k=upper_bound(b,b+m,h[i])-b;
        if(k!=0)sum+=c[k-1];
        sum+=(m-k)*h[i];
    }
    cout<<sum;
	return 0;
}

C-小杜的字符串_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

如果三个都不相等,加2,如果其中两个相等,加1 

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
int n,sum;
string s[3];
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
    cin>>s[0]>>s[1]>>s[2];
    for(int i=0;i<n;i++){
        if(s[0][i]==s[1][i]&&s[0][i]==s[2][i]){//3
        }
        else if(s[0][i]==s[1][i]||s[0][i]==s[2][i]||s[1][i]==s[2][i]){//2
            sum++;
        }
        else if(s[0][i]!=s[1][i]&&s[0][i]!=s[2][i]&&s[1][i]!=s[2][i]){//1
            sum+=2;
        }
    }
    cout<<sum;
	return 0;
}

D-矿石精炼场_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

这道题需要注意的就是如果现在的钱不足以支撑购买足够的电力,可以先赚够钱再看提高收益后的值,最后比较一下大小即可

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
ll t,w,m,E,D,c0,c1,p,e,d;
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
    while(t--){
        cin>>w>>m>>E>>D>>c0>>d>>p>>c1>>e;
        double cx=w+m*1.0;//0
        double cy=0.0;//1
        double ans;
        m-=c0;//建造一个矿石lianqi
        D+=d;
        if(D>E&&e!=0){//如果负载超过总电力值,停电
            D-=E;
            int k=D/e;
            if(D%e!=0)k++;
            m-=k*c1;
        }
        if(m>=0)cy=w+w*p*1.0/100+m;
        else cy=(w+m)+(w+m)*p*1.0/100;
        if(w+m<0||(D>E&&e==0)){
            ans=cx;
        }
        else{
            ans=max(cx,cy);
        }
        printf("%.2f\n",ans);
    }
	return 0;
}

G-114514国_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

纯暴力莽过去了,一开始一直不敢交

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
int n;
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
    for(int i1=0;i1<=n/11+1;i1++){
        for(int j1=0;j1<=n/45+1;j1++){
            for(int k1=0;k1<=n/14+1;k1++){
                ll t=i1*11+j1*45+k1*14;
                if(t>=n){
                    t-=n;
                    for(int i=0;i<=t/11+1;i++){
                        for(int j=0;j<=t/45+1;j++){
                            for(int k=0;k<=t/14+1;k++){
                                if(i*11+j*45+k*14==t){
                                    cout<<i1<<' '<<j1<<' '<<k1<<"\n";
                                    cout<<i<<' '<<j<<' '<<k;
                                    return 0;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
	return 0;
}

这里贴一下题解的思路吧45-11*4=1元,即我支付给店家45元,店家再找我4张11元即可购买价值1元的物品。因此对于价值为n的物品,我们可以先支付⌊𝑛/45⌋张45元;假设剩余m元,剩余部分我们支付m张45元,店家再找给我们4m张11元即可。 不像我,我只会暴力

#include<bits/stdc++.h>
#define ll long long  
using namespace std;
ll n;
int main () {
	cin>>n;
    int k=n/45;
    int p=n-k*45;
    cout<<"0 "<<p+k<<" 0\n";
    cout<<4*p<<" 0 0";
	return 0;
}

H-杰哥的激光炮_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

一个数学知识:对于一个长度为m,宽度为n的矩形,均分成m ∗ n个小方格,则对角线经过的小方格数量为m + n − ( m , n ) ,其中( m , n )为m 和n的最大公约数。

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
//数学公式
int t;
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
    while(t--){
        ll x,y;
        ll sum=0;
        cin>>x>>y;
        sum=x+y-gcd(x,y);
        cout<<sum<<"\n";
    }
	return 0;
}

M-超时空传送!!偷袭_北华大学第九届程序设计竞赛(同步赛) (nowcoder.com)

排个序后相加即可

#include<bits/stdc++.h>
#define ll long long  
#define f(i,j,n) for(int i=j;i<n;i++)
#define PI acos(-1.0)
using namespace std;
const int INF=0x3f3f3f3f;
const int Mod=1e9+7;
const int N=1e6+6;
int n,sum;
int a[N];
bool cmp(int x,int y){
    return x>y;
}
int main () {
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
    for(int i=0;i<n;i++){
        string s;
        cin>>s>>a[i];
    }
    sort(a,a+n,cmp);
    for(int i=0;i<min(9,n);i++){
        sum+=a[i];
    }
    cout<<sum;
	return 0;
}

 其他的待补

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值