2019 ICPC Asia-East Continent Final(A,M)题解

简介: 2019 ICPC Asia-East Continent Final(A,M)题解

A.

题意就是输入n,m,代表行含n格,列含m格,让我们在这个网格里面找线段,要求线段中点是交叉点;求有几个线段。


题解;


我们可以分析知道,把每一行每一列的含有合法的线段找出来,然后找出类似2*2,4*4的正方形的所有个数*2;


全部加起来就是答案。

#include <bits/stdc++.h>
using namespace std;
long long sum = 0, sum1 = 0, sum2 = 0;
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 2; i <= n; i += 2) {
    sum += n + 1 - i;
  }
  for (int i = 2; i <= m; i += 2) {
    sum1 += m + 1 - i;
  }
  sum2 += sum * (m + 1) + sum1 * (n + 1);
  for (int i = 1; i <= n; i++) {
    sum2 += sum1 * (i / 2) * 2;
  }
  cout << sum2 << endl;
}


M.


题意就是给出a排列,b排列,我们的结果序列可以加ai,但是如果i>2,j>2;i^k=j,我们的结果就要减bj,求结果最大化。


我们可以用2,3,5……的的K次方来搞在每一个里面找到最大的数,然后加起来。


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 7;
long long a[maxn], b[maxn], vis[maxn] = {0}, c[maxn], d[maxn];
int pd(int x, int  y) {
  for (ll i = x; i <= y; i *= x) {
    if (i == y) {
      return 1;
    }
  }
  return 0;
}
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  long long sum1 = 0;
  ll maxn;
  sum1 = a[1];
  for (int i = 2; i <= n; i++) {
    long long add = 0;
    maxn = 0;
    if (!vis[i]) {
      for (ll j = i; j <= n; j *= i) {
        c[add++] = j;
        vis[j] = 1;
      }
      for (int g = 0; g < (1 << add); g++) {
        ll add1 = 0;
        long long sum = 0;
        for (int h = 0; h < add; h++) {
          if (g & (1 << h)) {
            sum += a[c[h]];
            d[add1++] = c[h];
          }
        }
        for (int i = 0; i < add1; i++) {
          for (int j = 0; j < add1; j++) {
            if (d[i] < d[j] && pd(d[i], d[j])) {
              sum -= b[d[j]];
            }
          }
        }
        maxn = max(maxn, sum);
      }
    }
    sum1 += maxn;
  }
  cout << sum1 << endl;
}


相关文章
|
自然语言处理 安全 虚拟化
如何查看Windows所有软件的快捷键?
【2月更文挑战第12天】本文介绍在Windows电脑中,基于OpenArk工具,查看电脑操作系统与所有软件的快捷键,并对快捷键冲突加以处理的方法~
1260 9
如何查看Windows所有软件的快捷键?
|
1月前
|
人工智能 供应链 小程序
高效赋能数字人:2025 精选工具大推荐
2025 年,生成式 AI 技术推动数字人工具从 “单一功能落地” 迈向 “全链路价值赋能”,不仅能解决 “降本增效” 的基础需求,更能助力个人与企业解锁 “场景创新”。以下精选 5 款能力差异化的数字人工具,从核心技术、适配场景、实用价值等维度拆解,帮你找到能真正落地的数字人解决方案。
|
7月前
|
前端开发 Java PHP
开发体育赛事直播系统:实现聊天交友的私聊功能技术实现全方案解析
本文基于体育赛事直播系统,详细介绍了用户间私聊功能的完整实现方案。技术栈涵盖后端(PHP ThinkPHP)、前端(Vue.js)、移动端(Android Java、iOS OC),并结合MySQL数据库与WebSocket+Redis实现实时通信。功能包括一对一私聊、聊天记录显示、未读消息提示、消息免打扰、聊天置顶、删除/清空聊天记录等。文章提供了数据结构设计、接口代码示例及前后端关键实现细节,适合开发者学习参考。
|
3月前
|
人工智能 自然语言处理 算法
Tideflow 领衔:2025 年 6 款免费 SEO 优化工具全解析,新手秒变优化高手
本文介绍了多款免费SEO优化工具,尤其推荐了适合新手的Tideflow免费SEO优化工具。它功能全面,涵盖关键词挖掘、AI智能改写、TDK优化、链接检测等,帮助用户提升内容质量与搜索引擎排名。同时对比了其他五款高性价比工具,如147SEO、好资源AI、西瓜AI等,满足不同场景需求。文章强调,合理使用免费工具,结合内容策略,新手也能实现专业级SEO效果。
|
10月前
|
数据采集 存储 供应链
Pandas数据应用:库存管理
本文介绍Pandas在库存管理中的应用,涵盖数据读取、清洗、查询及常见报错的解决方法。通过具体代码示例,讲解如何处理多样数据来源、格式不一致、缺失值和重复数据等问题,并解决KeyError、ValueError等常见错误,帮助提高库存管理效率和准确性。
301 72
|
机器学习/深度学习 人工智能 自然语言处理
Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据
Documind 是一款利用 AI 技术从 PDF 中提取结构化数据的先进文档处理工具,支持灵活的本地或云端部署。
514 8
Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据
|
11月前
|
监控 负载均衡 算法
slb持续监控与调优
slb持续监控与调优
199 8
|
网络安全 开发工具 数据安全/隐私保护
|
人工智能 自然语言处理 安全
如何通过网关降低大模型的调用费用,并提升合规性
如何通过网关降低大模型的调用费用,并提升合规性
956 82
|
Dubbo Java 应用服务中间件
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)
此系列文章将会描述Java框架**Spring Boot**、服务治理框架**Dubbo**、应用容器引擎**Docker**,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   **本文为Docker容器部署,包括Dubbo微服务、Zookeeper、Dubbo-admin的部署**
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)