NOIP模拟题17.9.26
B 君的任务(task)
【题目描述】
与君初相识,犹如故人归。
B 君看到了Z 君的第一题,觉得很难。
于是自己出了一个简单题。
你需要完成n 个任务,第i 任务有2 个属性ai; bi。其中ai 是完成这
个任务所需要花费的时间,bi 为如果你在t 时间完成该任务,那么你受到的
损失便是bit。
初始时间是0,你最终收到的损失等于每个任务造成的损失之和,你需
要最小化自己受到的损失。
你只能一个任务接着一个任务的完成,不能同时做多个任务,所以说相
当于你只需要决定一个任务完成的顺序。
【输入格式】
第一行一个整数n。
以下n 行,每行两个整数ai; bi。
【输出格式】
一行一个整数表示答案。
【样例输入】
4
1 4
2 3
3 2
4 1
【样例输出】
35
【数据规模与约定】
对于100% 的数据,满足1 n 105; 0 ai 103; 0 bi 103。
对于30% 的数据,满足1 n 10。
对于70% 的数据,满足1 n 103。
数据没有梯度。
【题解】
国王游戏弱化版。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm> inline void read(long long &x)
{
x = ;char ch = getchar(), c = ch;
while(ch < '' || ch > '') c = ch, ch = getchar();
while(ch <= '' && ch >= '') x = x * + ch - '', ch = getchar();
if(c == '-')x = -x;
} const long long INF = 0x3f3f3f3f;
const long long MAXN = + ; struct Node
{
long long a,b;
Node(long long _a, long long _b){a = _a;b = _b;}
Node(){}
}node[MAXN]; long long cmp(Node t1, Node t2)
{
return t1.a * t2.b < t2.a * t1.b;
} long long n;
long long T, ans; int main()
{
read(n);
for(register long long i = ;i <= n;++ i)
read(node[i].a), read(node[i].b);
std::sort(node + , node + + n, cmp);
for(register long long i = ;i <= n;++ i)
{
T += node[i].a;
ans += T * node[i].b;
}
printf("%lld", ans);
return ;
}
T1
B 君的病症(ocd)
【题目描述】
享国之日浅,国家无事。
B 君看到了Z 君的第二题,觉得很难。
于是自己出了一个简单题。
大A 是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现
在有n 种颜色,其中第i 种颜色的珠子有ai 个。要求排列中第i 种颜色
珠子的所有珠子,一定要排在第i + 1 种颜色的第一个和最后一个珠子之
间。问有多少种排列珠子的方案,因为方案数会很大,所以请输出答案对
1000000007 取模之后的结果。
【输入格式】
第一行一个整数n。
以下n 行,每行一个整数ai。
【输出格式】
一行一个整数表示答案。
【样例输入】
【样例输出】
【数据规模与约定】
对于100% 的数据,满足1 n 104; 2 ai 15。
对于70% 的数据,满足1 n 102。
【题解】
会了上次模拟的那个这个也会,详见上一篇NOIP模拟博客
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm> inline void read(long long &x)
{
x = ;char ch = getchar(), c = ch;
while(ch < '' || ch > '') c = ch, ch = getchar();
while(ch <= '' && ch >= '') x = x * + ch - '', ch = getchar();
if(c == '-')x = -x;
} const long long INF = 0x3f3f3f3f;
const long long MAXN = + ;
const long long MOD = ; long long n,num[MAXN],sum[MAXN],f[MAXN]; long long pow(long long a, long long b)
{
long long r = , base = a%MOD;
for(;b;b >>= )
{
if(b & )r *= base, r %= MOD;
base *= base, base %= MOD;
}
return r;
} long long ni(long long a)
{
return pow(a, MOD - );
} long long C(long long n, long long m)
{
return f[n] * ni(f[n - m])%MOD * ni(f[m])%MOD;
} int main()
{
read(n);
for(register long long i = ;i <= n;++ i)
read(num[i]), sum[i] = sum[i - ] + num[i];
f[] = ;
for(register long long i = ;i <= MAXN;++ i)
f[i] = f[i - ] * i % MOD;
long long ans = ;
for(register long long i = ;i <= n;++ i)
ans = ans * C(sum[i] - , num[i] - ) % MOD;
printf("%lld", ans);
return ;
}
T2
B 君的方差(variance)
【题目描述】
相逢是问候,分手是祝愿。
B 君看到了Z 君的第三题,觉得很难。
于是自己出了一个简单题。
有一个长度为n 的数组faig,下标从1 开始。你需要支持2 种操作。
1. 1 x y,将第x 个元素修改为y。
2. 2 l r,询问下标l 到r 之间所有数的方差,因为方差可能不是整数,
所以输出时请乘(r
NOIP模拟题17.9.26的更多相关文章
- 【入门OJ】2003: [Noip模拟题]寻找羔羊
这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...
- NOIP模拟题汇总(加厚版)
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...
- 9.9 NOIP模拟题
9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- NOIP模拟测试17&18
NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...
- noip模拟题题解集
最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...
- NOIP 模拟题
目录 T1 : grid T2 : ling T3 : threebody 数据可私信我. T1 : grid 题目:在一个\(n*n\)的方格中,你只能斜着走.为了让问题更简单,你还有一次上下左右走 ...
- 9.22 NOIP模拟题
吉林省信息学奥赛 2017 冬令营 ...
- Noip模拟83 2021.10.26
T1 树上的数 有手就能在衡中$OJ$上过,但是$WaitingCoders$不行,就是这样 必须使用$O(n)$算法加上大力卡常,思路就是找子树内没更新的更新,更新过了直接$return$ 1 #i ...
随机推荐
- linux和window环境下安装ruby和sass
linux下安装ruby 下载linux的ruby安装包 http://www.ruby-lang.org/en/downloads/ 将ruby安装包在linux环境下解压 tar -x ...
- java 获取本机所有IP地址
import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import ...
- 自定义UICollectionViewLayout(适用于多个section)
一.自定义layout主要方法 重写系统的- (void)prepareLayout 方法: 其实就是计算每个cell的frame和其它相关属性. 二.在网上看了好多自定义的layout 但是没有多 ...
- day 45 前端CSS
前端CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式 ...
- Django自带的认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- python实现批量修改服务器密码
需求:机房.线上有多台主机,为了保障安全,需要定期修改密码.若手动修改,费时费力易出错. 程序应该满足如下需求 : 1.在现有的excel密码表格,在最后一个字段后面生成新的密码,另存为一个新的exc ...
- LinkedList集合 实现栈和队列
LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...
- JS基础语法之DOM01(找标签、改属性样式)
DOM:暂时可以理解为找标签.改样式 1.BOM: 记住location这个就可以: location.href 获得当前页面的URL location.href = "URL" ...
- 【NOIP2018模拟11.01】树
题目 描述 题目大意 维护一个序列,支持三种操作: 1.修改一段区间,将这段区间内的所有数都andandand一个数. 2.询问区间和. 3.询问区间两两相加的平方和. N≤10000N\leq 10 ...
- C++和G++手工开栈的=_=
微软的编译器(C++) #pragma comment(linker, "/STACK:102400000,102400000") G++ << ; // 256MB ...