F-Kobolds and Catacombs

牛客网

题意:对于\(n(n<=10^6)\)个数的序列,划分区间,每个区间内部从小到大排序,要求最后整个序列单调不下降,求最多可以划分为多少个区间。

分析:分别计算原始序列的前缀和,原始序列sort从小到大排序之后的前缀和,每两个前缀和相等的下标之间可以划分为一个区间,即答案就是前缀和相等的下标个数。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int read() {
char ch = getchar(); int x = 0, f = 1;
while (ch < '0' || ch>'9') { if (ch == '-') f = -1; ch = getchar(); }
while ('0' <= ch && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
return x * f;
}
const int N=1e6+5;
const int M=8e3+5;
const int mod=998244353;
ll sum1[N],sum2[N];
int a[N];
int main(){
int n=read();
for(int i=1;i<=n;++i){
a[i]=read();
sum1[i]=sum1[i-1]+a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;++i)sum2[i]=sum2[i-1]+a[i];
int ans=0;
for(int i=1;i<=n;++i){
if(sum1[i]==sum2[i])++ans;
}
cout<<ans<<endl;
return 0;
}

G-The Witchwood

牛客网

题意:给定n个数,求最大的k个数之和。

分析:签到题,应该要开long long。

K-Scholomance Academy

牛客网

题意:直接看这篇博客了解混淆矩阵、ROC曲线、AUC指标,就能看懂题目了,而且看懂题意,这道题就十分简单。

分析:我们要求的就是ROC曲线下方的面积。对于每个样本,题目中的'+'就是阳性,'-'就是阴性,当前阈值大于等于某样本的数值时,该样本判定为阳性,否则判定为阴性,因此会出现真阳TP、假阴FN、真阴TN、假阳FP四种情况。把两个样本分开并分别从小到大排序,根据阳性样本的值,让阈值递增,在每两个阳性样本之间阈值变化,TP不变,因此TPR也不变,即ROC曲线的纵坐标不变,而且很好求;现在只要考虑每两个阳性样本之间,FPR的变化范围,也就是ROC曲线横坐标的区间。阴性样本中数值越大的越容易假阳,因此随着阈值增大假阳样本数量递减,设置一个指针指向阴性样本的数组,阈值变化时,更新指针右移。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int read() {
char ch = getchar(); int x = 0, f = 1;
while (ch < '0' || ch>'9') { if (ch == '-') f = -1; ch = getchar(); }
while ('0' <= ch && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
return x * f;
}
const int N = 1e6 + 5;
const int M = 8e3 + 5;
const int mod = 998244353;
int n, pos[N], neg[N];
int main() {
cin>>n;
for (int i = 1; i <= n; ++i) {
char ch; cin >> ch;
int val;cin>>val;
if (ch == '+')pos[++pos[0]] = val;
else neg[++neg[0]] = val;
}
sort(pos + 1, pos + pos[0] + 1);
sort(neg + 1, neg + neg[0] + 1);
int now_tp = pos[0], now_fp = neg[0];
long double ans = 0.0, now_tpr = 1.0, now_fpr = 1.0;
int j = 1;
for (int i = 1; i <= pos[0]; ++i) {
while (j <= neg[0] && neg[j] < pos[i])++j;
long double r = now_fpr;
now_fp = neg[0] - j + 1; now_fpr = (long double)1.0 * now_fp / neg[0];
ans += (long double)(r - now_fpr) * now_tpr;
now_tp--; now_tpr = (long double)1.0 * now_tp / pos[0];
}
printf("%.12Lf\n", ans);
return 0;
}

ICPC2020 沈阳的更多相关文章

  1. 2016ACM/ICPC亚洲区沈阳站-重现赛赛题

    今天做的沈阳站重现赛,自己还是太水,只做出两道签到题,另外两道看懂题意了,但是也没能做出来. 1. Thickest Burger Time Limit: 2000/1000 MS (Java/Oth ...

  2. HDU 5510 Bazinga (2015沈阳现场赛,子串判断)

    Bazinga Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  3. HDU 5512 Pagodas (2015沈阳现场赛,找规律+gcd)

    Pagodas Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  4. HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  5. HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)

    Counting Cliques Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  6. HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Thickest Burger Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  7. HDU 5949 Relative atomic mass 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Relative atomic mass Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  8. 2015ACM/ICPC亚洲区沈阳站 Pagodas

    Pagodas Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  9. 2015ACM/ICPC亚洲区沈阳站 B-Bazinga

    Bazinga Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  10. ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)

    https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...

随机推荐

  1. wen文章表设计

  2. 桌面应用(.exe)设置窗口默认最大化、全屏(electron)

    设置窗口默认最大化.全屏(electron) 一.默认最大化 win = new BrowserWindow({show: false}) win.maximize() win.show() 二.默认 ...

  3. curl命令查用操作

    curl -o /dev/null -s -w "http_code: %{http_code} http_connect:%{http_connect} content_type:%{co ...

  4. JetBrains之全家桶破解

    JetBrains之全家桶破解(idea,rider....) 链接之....JETBRA.IN 打开上面的链接 随便点击下图中一个可用的链接,进入之后看下一步. 打开上一步的链接之后,下载下图中红框 ...

  5. 06 RDD编程

    总共有多少学生?map(), distinct(), count() 开设了多少门课程? 每个学生选修了多少门课?map(), countByKey() 每门课程有多少个学生选?map(), coun ...

  6. N63050 第十二周运维作业 ansible常用模块介绍未完成

    就业和全程班本周学习内容: 二十三.Mysql数据库四 1.MySQL主从复制实现和故障排错(50分钟) 2.MySQL级联复制和主主复制架构实现(51分钟) 3.MySQL的半同步复制和复制过滤器( ...

  7. python requests库从接口get数据报错Max retries exceeded with url解决方式记录

    问题: session = HTMLSession() r: requests_html.HTMLResponse r = session.get(url=req["url"], ...

  8. JAVA丑数

    leetcode题目链接 有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数.注意,不是必须有这些素因子,而是必须不包含其他的素因子.例如,前几个数按顺序应该是 1,3,5,7,9,15, ...

  9. 【Linux命令】在Linux服务器上与windows通过SCP命令互传文件时出现的问题排查过程

    1,在linux 执行 scp 1.txt adminitrator@10.10.10.10:/d:/后,报连接超时 原因:windows不支持ssh,可以安装支持SSH服务的工具,如:winsshd ...

  10. 关于精准UWB人员定位系统解决方案

    WB技术, 目前主要应用在室内定位.人员定位系统等定位领域.近年来被应用在无线定位和雷达测距应用中,因此作为民用雷达和民用测距取得了较快的发展.而今天,我们主要要来介绍的产品就是UWB技术的芯片DW1 ...