T1.金币

题目链接

 #include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int k;
long long ans;
int main()
{
scanf("%d",&k);
int cnt=;
while(k)
{
for(int i=;i<=cnt;i++)
{
if(k==)break;
ans+=cnt;k--;
}
cnt++;
if(k==)break;
}
printf("%lld",ans);
return ;
}

T2.扫雷游戏

题目链接

 #include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int xx[]={-,,,-,,-,,},yy[]={-,-,-,,,,,};
int n,m;
char s[][];
int count(int x,int y)
{
int num=;
for(int i=;i<;i++)
{
int xi=x+xx[i],yi=y+yy[i];
if(xi<||xi>=n||yi<||yi>=m)continue;
if(s[xi][yi]=='*')num++;
}
return num;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)scanf("%s",s[i]);
for(int i=;i<n;i++,printf("\n"))
for(int j=;j<m;j++)
{
if(s[i][j]=='*')printf("*");
else printf("%d",count(i,j));
}
return ;
}

T3.求和

题目链接

仔细读题之后我们会发现,我们枚举的过程其实跟y没什么关系……

但因为题目限定了x+z=2*y,即x+z为偶数,所以x和z必须同奇或同偶。

所以分颜色分奇偶存一下就好了✔

 #include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
const int N=;
long long ans;
int n,m,siz,color,num[N];
vector<int>a[N][];
int read()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int main()
{
n=read();m=read();
for(int i=;i<=n;i++)num[i]=read();
for(int i=;i<=n;i++)
{
color=read();
a[color][i%].push_back(i);
}
for(int i=;i<=m;i++)
{
for(int t=;t<;t++)
{
siz=a[i][t].size();
for(int j=;j<siz;j++)
for(int k=j+;k<siz;k++)
{
int x=a[i][t][j],z=a[i][t][k];
ans=(ans+(long long)(x+z)*(num[x]+num[z]))%;
}
}
}
printf("%lld",ans);
return ;
}

T4.推销员

题目链接

维护两个大根堆,一个存各个住户的距离*2+疲劳值,另一个存各个住户的疲劳值;每次取出堆顶元素,将较大的那一个累加进答案里。

注意判断是否合法:假设当前走到的距离最远的住户为x;则直接累加住户i的疲劳值需要满足的条件为:s[i]<=s[x];累加住户i的距离*2+疲劳值需要满足的条件为:s[i]>s[x],且累加时记得减去s[x]*2

 #include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int N=;
struct node
{
int w,pos;
bool operator <(const node& a)const{return w<a.w;}
}q2[N],r1,r2;
priority_queue<node>q1;
int n,cnt,cut,tail,s[N],t[N];
bool f[N];
long long ans;
int read()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int main()
{
n=read();cnt=n;tail=n;
for(int i=;i<=n;i++)s[i]=read();
for(int i=;i<=n;i++)
{
t[i]=read();
q2[i].w=s[i]*+t[i];q2[i].pos=i;
}
sort(q2+,q2+n+);
while(cnt)
{
if(tail)r2=q2[tail],tail--;
else r2=(node){,n+};
if(r2.pos<=cut)continue;
if(!q1.empty())r1=q1.top(),q1.pop();
else r1=(node){,};
if(r1.w>r2.w-*s[cut])
{
ans+=r1.w;
if(r2.pos!=n+)tail++;
}
else
{
ans+=r2.w-*s[cut];
for(int i=cut+;i<r2.pos;i++)q1.push((node){t[i],i});
if(r1.pos!=)q1.push(r1);
cut=r2.pos;
}
printf("%lld\n",ans);cnt--;
}
return ;
}

【noip 2015】普及组的更多相关文章

  1. NOIP 2015普及组复赛Day1 T1 == Codevs4510 神奇的幻方

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold  题目描述 Description: 幻方是一种很神奇的N∗N矩阵:它由数字 1,2,3, … … ,N∗N构成, ...

  2. NOIP 2018 普及组 解题报告

    目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...

  3. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  4. NOIP 2015提高组复赛

    神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第 ...

  5. NOIP 2015 提高组 Day2

    期望得分:100+10+60=170 实际得分:100+10+35=145 http://www.cogs.pro/cogs/page/page.php?aid=16 T1 跳石头 时间限制:1 s  ...

  6. NOIP 2015 提高组 Day1

    期望得分:100+100+100=300 实际得分:100+100+45=245 T3 相似的代码 复制过去 没有改全,痛失55分 http://www.cogs.pro/cogs/page/page ...

  7. NOIP 2014 普及组 T4 子矩阵

    [题意] 已知:n,m,r,c,a[i][j] (1 ≤ n ≤ 16, 1 ≤ m ≤ 16,1 ≤ a[i][j] ≤1000,1 ≤ r ≤ n, 1 ≤ c ≤ m) 条件:矩阵的分值定义为每 ...

  8. NOIP 2014 普及组 T3 螺旋矩阵

    [题意] 已知:n,r,c(n<=30000) 条件:给定n行n列的螺旋矩阵(从矩阵的左上角(1,1)出发,初始时向右移动:如果前方是未曾经过的格子, 则继续前进,否则右转:重复上述操作直至经过 ...

  9. noip 2015 提高组

    算是填个坑吧 , QwQ Day 1 第一题很水,就是考代码能力 ,直接贴代码. #include <iostream> #include <cstdlib> #include ...

  10. 开心的金明 NOIP 2006 普及组

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就 ...

随机推荐

  1. The 2018 ACM-ICPC Asia Qingdao Regional Contest

    The 2018 ACM-ICPC Asia Qingdao Regional Contest 青岛总体来说只会3题 C #include<bits/stdc++.h> using nam ...

  2. 分布式监控系统Zabbix--使用Grafana进行图形展示

      今天介绍一款高颜值监控绘图工具Grafana,在使用Zabbix监控环境中,通常我们会结合Grafana进行图形展示.Grafana默认没有zabbix作为数据源,需要手动给zabbix安装一个插 ...

  3. C# 下载文件 只利用文件的存放路径来下载

    第一种方式: 最简单的就是返回一个file类型的数据即FilePathResult类型的对象 string serverPath = ConfigurationManager.AppSettings[ ...

  4. [luogu2286][宠物收养所]

    题目链接 思路 比较裸的一道平衡树的题.用一个变量S来表示当前树的情况,当S为负数时树内为宠物,当S为正数时树内为人.然后每次分情况讨论一下.如果树为空或者是与来的东西(人或宠物)与树内存的相同.那么 ...

  5. Http请求报头设置

    1.添加一个SetHeaderValue方法: public static void SetHeaderValue(WebHeaderCollection header, string name, s ...

  6. Django 分页器的使用

    Django 分页器的使用 Django作为Python Web开发框架的一哥,提供了企业级网站开发所需要的几乎所有功能,其中就包括自带分页功能.利用Django自带的Paginator类,我们可以很 ...

  7. RabbitMQ入门-路由-有选择的接受消息

    比如一个日志系统,之前的处理方式呢,是各种类型(info,error,warning)的消息都发给订阅者,可是实际情况上不一定都需要.可能A需要error,其他的都不需要.那么就引入了今天的处理方式- ...

  8. Codeforces Round #525 (Div. 2) D. Ehab and another another xor problem(待完成)

    参考资料: [1]:https://blog.csdn.net/weixin_43790474/article/details/84815383 [2]:http://www.cnblogs.com/ ...

  9. HTML学习笔记Day11

    一.CSS文档统筹 (一)网页自身的优化 (二)CSS规范 1.命名方法(语义化命名,结构化命名) ID:结构化    header footer class: .border0    . red:  ...

  10. 修复./mysql/proc

    mysql数据库只能建不能删的错误提示及处理方法: mysql> drop database zabbixaa; ERROR 145 (HY000): Table ‘./mysql/proc‘ ...