菜鸡第一次打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新疆省赛的更多相关文章

  1. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  2. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  3. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  4. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  5. SCNU 2015ACM新生赛初赛【1007. ZLM的扑克牌】解题报告

            题目链接详见SCNU 2015新生网络赛 1007. ZLM的扑克牌 .         其实我在想这题的时候,还想过要不要设置求最小的排列,并且对于回文数字的话,可以把扑克牌折起来( ...

  6. SCNU 2015ACM新生赛初赛【1006. 3D打印】解题报告

            题目链接详见SCNU 2015新生网络赛 1006. 3D打印 .出题思路来自codevs 3288. 积木大赛,属于模拟题.         首先我们把“选择从第L部分到第R部分”理 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  9. 第七届山东省ACM省赛

    激动人心的省赛终于结束了…平静下来再回头看真的感觉一波三折…先是赛前毫无预兆的查出突发性耳聋…伴随而来的就是左耳听力下降.轻微耳鸣.极个别情况下的头晕…不过这都还好,毕竟药物可以恢复…热身赛只过了一道 ...

随机推荐

  1. 「雅礼集训 2017 Day2」水箱 (数据结构+dp ,一个log)

    题面 题解 在网上看到有些做法,有什么平衡树.启发式合并等等总之复杂度O(Tnlog^2(n))的不优做法,这里我就用一个O(Tnlogn)的做法好了 其实大体上推导的思路都是一样的. 我们很容易发现 ...

  2. PerfView专题 (第十二篇):对 C# 下的 SDK 类库进行监控(大结局)

    一:背景 本篇是我们系列文章的最后一篇,前面的文章中大多是在 CLR Runtime 以及 OS 层面进行监控来发现各种可疑的程序问题,除了这两个层面,其实我们还可以对 SDK 中一些类进行洞察,比如 ...

  3. 轻量级消息队列 Django-Q 轻度体验

    前言 最近做的这个项目(基于Django),需要做个功能,实现定时采集车辆定位. 这让我想起来几年前那个OneCat项目,当时我用的是Celery这个很重的组件 Celery实在是太重了,后来我做公众 ...

  4. Springboot连接数据库(解决报错2)

    好家伙, 新建项目,不出意外的话总是会出点意外的 第一天正常运行,第二天就炸了. 1.看报错 百度一下找解决方案 试着将 application.properties中的 com.mysql.jdbc ...

  5. 手写tomcat——有线程池化能力的servlet 服务

    点击查看代码 public class DiyTomcat { private int port = 8080; public static final HashMap<String, DiyS ...

  6. haodoop数据压缩

    压缩概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数.压缩提高了网络宽带和磁盘空间的效率.在运行MR程序时,I/O操作,网络数据传输,Shuffle和Merge要花大量的时间,尤其是数据规 ...

  7. 使用Prometheus和Grafana监控emqx集群

    以 Prometheus为例: emqx_prometheus 支持将数据推送至 Pushgateway 中,然后再由 Promethues Server 拉取进行存储. 注意:emqx_promet ...

  8. 【Ceph】Ceph学习理解Ceph的三种存储接口:块设备、文件系统、对象存储

    文章转载自:https://blog.51cto.com/liangchaoxi/4048519

  9. Security Context

    概述 Security Context(安全上下文)用来限制容器对宿主节点的可访问范围,以避免容器非法操作宿主节点的系统级别的内容,使得节点的系统或者节点上其他容器组受到影响. Security Co ...

  10. Kubernetes Node的隔离与恢复

    在硬件升级.硬件维护等情况下,我们需要将某些Node进行隔离,脱离Kubernetes集群的调度范围.Kubernetes提供了一种机制,即可以将Node纳入调度范围,也可以将Node脱离调度范围. ...