NOIP2010普及组
T2】接水问题
有一些小细节,比如如果最小值存在多个,比如最后还需要一个完全结束的最大值
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<set>
using namespace std;
const int maxn=10100;
const int INF=0x3fffffff;
int n,m;
int b[110];
int a[maxn];
int main(){
cin>>n>>m;
int ans=0;
for(int i=1;i<=n;i++) cin>>a[i];
int minn=INF,minindex=-1;
for(int i=1;i<=m;i++){
b[i]=a[i];
} for(int i=m+1;i<=n;i++){
minn=b[1];
vector<int> minindex;
for(int j=1;j<=m;j++){
if(b[j]<=minn){
minn=b[j];
//minindex.push_back(j);
}
}
for(int j=1;j<=m;j++){
if(b[j]==minn) minindex.push_back(j);
b[j]-=minn;
}
ans+=minn;
for(int j=0;j<minindex.size();j++) b[minindex[j]]=0;
b[minindex[0]]=a[i];
}
int maxx=-INF;
for(int i=1;i<=m;i++){
if(b[i]>maxx) maxx=b[i];
}
ans+=maxx;
cout<<ans<<endl;
return 0;
}
T3 导弹拦截
还是写一下,细节
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
const int maxn = 100002, inf = 1000000000;
int X1, Y1, X2, Y2, n;
struct data
{
int x, y;
long long t1, t2;
}; bool cmp(data a, data b)
{
return a.t1 < b.t1;
} data d[maxn]; int main()
{
scanf("%d%d%d%d", &X1, &Y1, &X2, &Y2);
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d%d", &d[i].x, &d[i].y);
d[i].t1 = (long long)(X1 - d[i].x)*(X1 - d[i].x) + (long long)(Y1 - d[i].y)*(Y1 - d[i].y);
d[i].t2 = (long long)(X2 - d[i].x)*(X2 - d[i].x) + (long long)(Y2 - d[i].y)*(Y2 - d[i].y);
}
sort(d + 1, d + n + 1, cmp);
long long r2 = 0,ans=inf;
for (int i = n; i >0; i--)
{
r2 = max(d[i + 1].t2, r2);
ans = min(ans, r2 + d[i].t1);
}
printf("%I64d", ans);
return 0;
}
T4】三国游戏
这道题不要想复杂了,其实简化了想,就是再求每一行第二大的,然后再求一个最大
就是这样,而且肯定能赢的,肯定
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<set>
using namespace std;
const int maxn=1010;
const int INF=0x3fffffff;
int n;
int a[510][510]; int main(){
scanf("%d",&n);
int maxx=-INF,mx=0,my=0;
for(int i=1;i<=n;i++){
a[i][i]=0;
for(int j=i+1;j<=n;j++){
scanf("%d",&a[i][j]);
a[j][i]=a[i][j];
}
}
//找到第二大的
int max1=0,max2=0;
int ans=-1;
for(int i=1;i<=n;i++){
max1=0,max2=0;
for(int j=1;j<=n;j++){
if(a[i][j]>max1){
max2=max1;
max1=a[i][j];
}
else if(a[i][j]>max2){
max2=a[i][j] ; //存储这一行的第二大的
}
}
if(max2>ans) ans=max2; //哪一行的第二最大,就存储哪一行的
}
cout<<"1"<<endl<<ans<<endl;
return 0;
}
NOIP2010普及组的更多相关文章
- NOIP2010普及组题解 -SilverN
三国游戏 题目内容不放了 由于电脑总是会拆掉最大的组合,所以玩家最多只能得到数值第二大的组合 那么找出第二大的组合就行了 #include<iostream> #include<cs ...
- NOIP2010普及组 三国游戏 -SilverN
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> usin ...
- NOIP2010普及组T4 三国游戏——S.B.S.
题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之 ...
- NOIP2010普及组T3 接水问题 ——S.B.S.
题目描述 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为 1. 现在有 n 名同学准备接水,他们的初始接水顺序已经确定.将这些同学按接水顺序从 1到 ...
- [NOIP2010] 普及组
三国游戏 题目内容不放了 由于电脑总是会拆掉最大的组合,所以玩家最多只能得到数值第二大的组合 那么找出第二大的组合就行了 #include<iostream> #include<cs ...
- 接水问题【NOIP2010普及组】优先队列
题目描述 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1. 现在有 n 名同学准备接水,他们的初始接水顺序已经确定.将这些同学按接水顺序从 1到 n ...
- NOIP2010普及组 三国游戏
题目OJ地址 http://codevs.cn/problem/1129/ https://www.luogu.org/problemnew/show/P1199 题目描述 Description 小 ...
- NOIP2010普及组 导弹拦截
导弹拦截 OJ地址: https://www.luogu.org/problemnew/show/P1158 http://codevs.cn/problem/1128/ 题目描述 Descrip ...
- NOIP2002-2017普及组题解
虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...
- NOIP2012 普及组 T3 摆花——S.B.S.
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
随机推荐
- sql offset 优化
// let groupSql = ` select id,jd_gcj02ll, wd_gcj02ll from ${tablename_qiye} where id between ${size ...
- mac上gitclone出现password: Permission denied, please try again.
问题在mac上拉取项目出现一下问题,然后我输入密码还是这样的提示. password: Permission denied, please try again.1分析解决情况1:git地址为http协 ...
- 查询最上活动的activity
adb shell dumpsys window windows | grep mCurrent
- 解决在高分屏电脑上的vmware,linux系统的显示比例不正确的问题
除了在虚拟机系统内改变显示比例为200%的方法,还有另一种方法: 编辑虚拟机设置--硬件--显示器--指定监视器设置,选择任意监视器的最大分辨率为1920x1080(或者比例保持不变的其他分辨率,例如 ...
- iview table添加input框,且校验
方法一 render渲染 { title: "用户名", key: "stockPrice", render: (h, params) => { retu ...
- MySQL 5.0版本的安装步骤
一.MYSQL的安装 1.以管理员的身份运行"mysql_setup.exe" 2.点击"Next" 3.选择"I accept the terms ...
- 定制个性化echarts 仪表盘
option = { series: [ { type : "gauge", center: ["50%", "45%"], // 默认全局 ...
- vue 收藏
html: //收藏 <el-table-column prop="isOpen" label=""> <te ...
- 【mysql练习】转置,总计,分组
1,有如下一个表,要求把这个表按照2016,2017,2018,2019,把从1月到12月的金额展示出来. profit表: year month amount2019 1 52019 3 62018 ...
- 浅谈前端自动化构建(Grunt、gulp。webpack)
前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难, ...