2022icpc新疆省赛
菜鸡第一次打icpc
记录一下历程
习惯#define int long long
以下皆是按照我认为的难易顺序排序
K.
看题意大概就是说求从L加到R
1 ios::sync_with_stdio(false);
2 cin.tie(nullptr);
3 cout.tie(nullptr);
4 int a,b;
5 cin>>a>>b;
6
7 if(a < b) swap(a,b);
8 int res =a-b+1;
9 cout<<(a+b)*res/2;
B.
贪心,同一列1多就构造1,否则就构造0
1 const int N = 1e3 + 10;
2 char s[N][N];
3 char res[N];
4
5 void solve() {
6 ios::sync_with_stdio(false);
7 cin.tie(nullptr);
8 cout.tie(nullptr);
9
10 int n, m;
11 cin >> n >> m;
12 for (int i = 1; i <= n; ++i) {
13 cin >> (s[i] + 1);
14 }
15 for (int j = 1; j <= m; ++j) {
16 int a = 0, b = 0;
17 for (int i = 1; i <= n; ++i) {
18 if (s[i][j] == '0') b++;
19 else a++;
20 }
21 if (a > b) res[j] = '1';
22 else res[j] = '0';
23 }
24 cout << (res + 1);
25 }
G.
很裸的一个01背包问题,只不过多了一个背包,变二维了
(数据范围很坑,比赛的时候就因为数据范围的时候一直爆内存错误,下来了把空间开大了就过了)
1 const int N = 510;
2 int n, v1, v2;
3 int v[N], w1[N], w2[N];
4 int dp[N][N];
5 void solve() {
6 cin >> n >> v1 >> v2;
7 for (int i = 1; i <= n; ++i) {
8 cin >> v[i] >> w1[i] >> w2[i];
9 }
10 for(int i =1;i <= n;++i)
11 for(int j = 0;j <= v1;++j)
12 for(int k = 0;k <= v2;++k){
13 if(j >= v[i]) dp[j][k] = max(dp[j][k],dp[j-v[i]][k]+w1[i]);
14 if(k >= v[i]) dp[j][k] = max(dp[j][k],dp[j][k-v[i]]+w2[i]);
15 }
16 cout<<dp[v1][v2]<<"\n";
17 }
A.
可以说是dfs吧,从根节点搜到底,如果碰到节点没有后继,说明食物链+1
从底层的节点向上更新数据,最后输出根节点的最大价值
(比赛的时候想复杂了,用层序遍历从底层节点向上更新,虽然总的想法差不多,但是在处理边权的时候需要不断重复的搜边造成时间爆炸
而且也没什么好的办法优化这种搜边的问题,最后卡在6s了)
const int N = 2e6+10,mod = 32416190071;
int n;
int f[N];
int pre[N];
bool st[N];
int ans = 0;
int e[N],ne[N],h[N],idx,w[N];
void add(int a,int b,int v){
e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx++;
} void dfs(int root){
if(h[root] == -1){
ans ++;
}
f[root] = pre[root] % mod;
for(int i = h[root];~i;i = ne[i]){
int j = e[i],c = w[i];
dfs(j);
f[root] = (f[root]+f[j]*c)%mod;
} } signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n;
memset(h,-1,sizeof (h));
for(int i = 1;i < n;++i){
int a,b,v;
cin>>a>>b>>v;
add(a,b,v);
st[b] = true;
}
int root = 0;
for(int i = 1;i <= n;++i) if(!st[i]){
root = i;
break;
}
for(int i =1;i <= n;++i){
cin>>pre[i];
}
dfs(root);
cout<<ans<<"\n"<<f[root]<<"\n";
return 0;
}
菜鸡就只能做到这了,大概总结一下
比较有问题的地方在数据范围和c++输入输出没加速(血泪教训)
别的题感觉数论好多,难受不会
2022icpc新疆省赛的更多相关文章
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音? ...
- SCNU 2015ACM新生赛初赛【1007. ZLM的扑克牌】解题报告
题目链接详见SCNU 2015新生网络赛 1007. ZLM的扑克牌 . 其实我在想这题的时候,还想过要不要设置求最小的排列,并且对于回文数字的话,可以把扑克牌折起来( ...
- SCNU 2015ACM新生赛初赛【1006. 3D打印】解题报告
题目链接详见SCNU 2015新生网络赛 1006. 3D打印 .出题思路来自codevs 3288. 积木大赛,属于模拟题. 首先我们把“选择从第L部分到第R部分”理 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- 第七届山东省ACM省赛
激动人心的省赛终于结束了…平静下来再回头看真的感觉一波三折…先是赛前毫无预兆的查出突发性耳聋…伴随而来的就是左耳听力下降.轻微耳鸣.极个别情况下的头晕…不过这都还好,毕竟药物可以恢复…热身赛只过了一道 ...
随机推荐
- 从零开始实现一个MyBatis加解密插件
作者:vivo 互联网服务器团队- Li Gang 本篇文章介绍使用MyBatis插件来实现数据库字段加解密的过程. 一.需求背景 公司出于安全合规的考虑,需要对明文存储在数据库中的部分字段进行加密, ...
- 用maven创建ssm框架样版
在pom.xml中添加依赖包 特别要注意导入的"org.springframework"的版本,不兼容会报错 <!--依赖:junit ,数据库驱动,连接池,servlet, ...
- 日常问题: SQL优化
日常开发中,除了开辟新项目,业务需求开发,一般还要做负责系统的日常运维.比如线上告警了,出bug了,必须及时修复.这天,运维反馈mysql cpu告警了,然后抓了该时间节点的慢sql日志,要开发分析解 ...
- 第六十篇:Vue的基本使用
好家伙,要来了,经典"hello world" 试用一下vue ① 导入 vue.js的 script 脚本文件 ② 在页面中声明一个将要被vue所控制的DOM区域 ③ 创建vm实 ...
- C#/.NET/.NET Core优秀项目框架推荐
前言: 为.NET开源者提供的一个推荐自己优秀框架的地址,大家可以把自己的一些优秀的框架,或者项目链接地址存到在这里,提供给广大.NET开发者们学习(排名不分先后). Github项目仓库收集地址:h ...
- session 总结
session 总结(单节点场景) session 称作域对象,一般保存在当前服务器的内存中,如果有很多session也会部分不常用的session"钝化"到磁盘中,若磁盘中的se ...
- 2.69分钟完成BERT训练!新发CANN 5.0加持
摘要:快,着实有点快. 现在,经典模型BERT只需2.69分钟.ResNet只需16秒. 啪的一下,就能完成训练! 本文分享自华为云社区<这就是华为速度:2.69分钟完成BERT训练!新发CAN ...
- scheduler打印状态到日志
编辑脚本和目录 # 如下步骤每个proxysql节点都需要操作 [root@ss30 opt]# mkdir -p /opt/proxysql/log [root@ss30 opt]# vim /op ...
- Elasticsearch: Reindex接口
在我们开发的过程中,我们有很多时候需要用到Reindex接口.它可以帮我们把数据从一个index到另外一个index进行重新reindex.这个对于特别适用于我们在修改我们数据的mapping后,需要 ...
- 使用python读取京东pdf发票信息导出到excel表格中
代码 #!/usr/bin/env python # -*- coding: utf-8 -*- """ pip install pdfminer3k pip insta ...