第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛(部分题解)
唉,好久没更新博客了,说明我这段时间在学习上都懈怠了Σ( ° △ °|||)︴
昨天打了场金马赛,这网络…..我真的是无力吐槽…..
前三题都是大水题,就不挂代码了;
D-快速幂取模裸题
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1000000007;
ll MOD(ll a,ll b,ll mod)
{ll ret=1;ll tmp=a;while(b){if(b&0x1)ret=ret*tmp%mod;tmp=tmp*tmp%mod;b>>=1;}return ret;
}
ll sum=0;
ll n;
int main()
{while(scanf("%lld",&n)!=EOF){ll ans=MOD(2,n,mod);ans--;printf("%lld\n",ans);}
}
E-字符串模拟或者java大数或者高精度都可以
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[20];
int m;
//char bian[100000005];
int main()
{while(scanf("%s",s)!=EOF){ll k=0;char a[100005];scanf("%d",&m);int len=strlen(s);ll sum=0;for(int i=0;i<len;i++){ll bei=1;for(int j=1;j<=len-i-1;j++)bei*=26;//printf("%d\n",bei);sum+=(s[i]-'a')*bei;//printf("%d\n",sum);}//printf("%d\n",sum);if(sum==0)printf("0");while(sum){if(sum<m){while(sum){a[k]=sum%10+'0';sum/=10;k++;break;}}if(sum==m){a[k]='0';k++;a[k]='1';k++;break;}int mod=sum%m;if(mod!=0){while(mod){a[k]=mod%10+'0';mod/=10;k++;}}else{a[k]='0';k++;}//printf("%d\n",sum);sum/=m;}//printf("%c\n",a[0]);for(int i=k-1;i>=0;i--){if(a[i]=='0'&&i==k-1)continue;elseprintf("%c",a[i]);}printf("\n");}
}
F-lower_bound或者upper_bound二分暴搜过,自己写的二分效率会更高些。
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
int n;
int a[100005];
int dp1[100005];
int dp2[100005];
int la[1000005];
int lb[1000005];
int main()
{while(scanf("%d",&n)!=EOF){memset(dp1,0x3f3f3f3f,sizeof(dp1));memset(dp2,0x3f3f3f3f,sizeof(dp2));for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++){*lower_bound(dp1+1,dp1+1+n,a[i])=a[i];la[i]=lower_bound(dp1+1,dp1+1+n,0x3f3f3f3f)-(dp1+1);}for(int i=n;i>=0;i--){*lower_bound(dp2+1,dp2+1+n,a[i])=a[i];lb[i]=lower_bound(dp2+1,dp2+1+n,0x3f3f3f3f)-(dp2+1);}int chang=1;for(int i=1;i<=n;i++){chang=max(min(lb[i],la[i])*2-1,chang);}printf("%d\n",chang);}
}
K-购买装备
昨天写的时候被吓了一跳,总感觉会有坑,就一直没开….赛后补题没想到这么简单 ( ̄▽ ̄”)
大概就是一开始最先选取价格最低的装备,这样能保证能够买最多的装备,然后再找出自己属性值最低的装备去和没有被购买的属性值最高的装备比较,看看是不是没买的属性值比我级最低的高,如果把属性值最低的装备卖了后钱够的话就买下,反之不做操作;
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int zu;
int n,m;struct edge
{int val;int cost;bool operator < (const edge &b)const{return val==b.val ? cost<b.cost: val>b.val;}
}a[100005];bool cmp(edge a,edge b)
{return a.cost==b.cost ? a.val>b.val : a.cost<b.cost;
}int main()
{scanf("%d",&zu);while(zu--){scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d%d",&a[i].val,&a[i].cost);sort(a,a+n,cmp);priority_queue<edge> q;for(int i=0;i<n;i++){if(m<a[i].cost)break;else{m-=a[i].cost;q.push(a[i]);}}for(int i=q.size();i<n;i++){if(q.top().val>=a[i].val)continue;else{if(m-a[i].cost+q.top().cost>=0){m+=q.top().cost;m-=a[i].cost;q.pop();q.push(a[i]);}}}printf("%d %d\n",q.size(),q.top().val);}
}
H-调和序列—-那个直接看上去,K的数据范围看着估计吓倒一片人 (⊙□⊙)
然而,n只有2e5,直接扔到vector里离线处理一下就好。
这题….我又wa了大概五遍……最后是胡大佬过来帮我找错,发现时s>=n这个判定我少写了“=”,因为我是从0开始的啊啊啊啊啊,
最大只到n-1
٩(×̯×)۶
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int zu;
int n,m;
ll a[100005];
vector<ll>v[100005];
ll k;
ll s;bool cmp(ll a,ll b)
{return a>b;
}
int main()
{scanf("%d",&zu);while(zu--){scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&a[i]);v[i].clear();}for(int i=1;i<n;i++){for(int j=0;j<=(n-1)/i;j++){v[i].push_back(a[i*j]);}sort(v[i].begin(),v[i].end(),cmp);}for(int i=0;i<m;i++){scanf("%lld%lld",&k,&s);if(k>=n)//别忘了等号啊啊啊啊啊啊!{if(s==1)printf("%lld\n",a[0]);elseprintf("-1\n");}else{if(v[k].size()<s)printf("-1\n");elseprintf("%lld\n",v[k][s-1]);}}}
}
第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛(部分题解)相关推荐
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛:I. 丢史蒂芬妮
丢史蒂芬妮 发布时间: 2017年7月8日 21:37 最后更新: 2017年7月8日 23:24 时间限制: 1000ms 内存限制: 128M 描述 有一天,空和白很无聊,决定玩盛大游 ...
- 第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛H
思路: 首先要知道:11+12+13+14+...++1n=ln(n)+C \dfrac{1 }{1} + \dfrac{1 }{2} + \dfrac{1 }{3} + \dfrac{1 }{4}+ ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 L-K序列
埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 L-K序列 链接:https://www.nowcoder.com/acm/contest/91/L 来源:牛客网 题目描述 给一个数组 ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A-Wasserstein Distance
埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A-Wasserstein Distance 链接:https://www.nowcoder.com/acm/contest/91/A ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 E-小Y吃苹果
埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 E-小Y吃苹果 链接:https://www.nowcoder.com/acm/contest/91/E 来源:牛客网 题目描述 小Y买 ...
- 好久没撸c,第一场回状态的题(埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛
题目链接: 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A:Wasserstein Distance ## 题意:有2大堆柱状图的土(总体积相同,问从第一堆土移动到第二堆消耗最少的 ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 C序列变换...
链接:https://www.nowcoder.com/acm/contest/91/C 来源:牛客网 没有账号的同学这样注册,支持博主 题目描述 给定两个长度为n的序列,ai, bi(1<=i ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 F- 1 + 2 = 3? (好难的找规律题)
斐波那契真的牛掰 题目链接 题目描述: 小Y在研究数字的时候,发现了一个神奇的等式方程 ,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个等式的正整数 ...
- 二数 (埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛)...
题目描述 我们把十进制下每一位都是偶数的数字叫做"二数". 小埃表示自己很聪明,最近他不仅能够从小数到大:2,3,4,5....,也学会了从大数到小:100,99,98...,他想 ...
最新文章
- 一个比较保守的404页面
- Caffe源码中Pooling Layer文件分析
- H5案例分享:移动端滑屏 touch事件
- 关于fetch api这点事
- 学习Java的相关知识
- C#/C++/Fortran 在32位/64位下数学计算性能对比
- 人工智能ai 学习_人工智能中强化学习的要点
- django多语言支持
- SQLAlchemy engine.Connection
- 《南溪的目标检测学习笔记》——后处理方法的学习笔记
- 虚拟机安装教程(VM15.5+Ubuntu16.04)
- 初中计算机课件flash,初中信息技术FLASH基础知识-PPT课件
- P2495 [SDOI2011]消耗战(虚树+DP)
- 【QT】常用字符串/文件操作
- 三大运营商网络使用频段及随身wifi选用
- 盛语小智教育机器人是骗人的_教育机器人哪个好 盛语小智教育机器人带你发家致富...
- ios 随时检测蓝牙是否开启_如何在iPhone或iPad上检查蓝牙状态
- python人脸识别项目_face++与python实现人脸识别签到(考勤)功能
- 如何引流更精准?如何精准定位客户群体?成功引流方案
- win10 无法删除 注册表 蓝牙_Win10蓝牙无法删除设备蓝牙鼠标无法连接解决方法...
热门文章
- 阿里JAVA开发手册(泰山版)
- apa引用要在文中吗_Reference 居然还有那么多讲究?引用不好就挂了!
- PowerBI Server端管理数据网关
- 计算机主机接电视机,液晶电视机怎样才能连接电脑主机?
- 拒做外包行业的“富士康”,看看文思海辉、东软、中软和塔塔都在转向哪里...
- 社交平台上的“引流”黑色产业链:“假聊”获粉,精准割韭菜
- ios13测试版怎么卸载软件,苹果手机升ios13.2后怎么删除app ios13.2卸载软件应用方法...
- 小程序 - K线图画法
- PyCharm - 码云(Gitee)
- 【ECharts系列|03可视化大屏】大数据管理平台实时展示