目录

  • 4618. 两个素数
  • 4619. 减法操作
  • 4620. 旅行

4618. 两个素数

暴力枚举判断即可

bool is_primes(int x)
{for(int i=2;i<=x/i;i++)if(x%i==0)return false;return true;
}
void solve()
{cin>>n;rep(i,1,n){rep(j,i,n){if(is_primes(i)&&is_primes(j)&&i*j==n){cout<<i<<' '<<j<<endl;return;}}}
}

4619. 减法操作

第一种操作把相邻两个数-1,第二种操作时对任意一个数-2
要使所有数字都变成0。
我们先将数组中的所有奇数都先想办法编程偶数,如果都变成偶数则再使用操作二就能满足条件,否则不满足。所以题目的关键在于如何尽可能使用第一种操作使数组元素都变成偶数。

#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
const double eps=1e-7;
#define YES cout<<"YES"<<endl
#define NO cout<<"NO"<<endl
#define x first
#define y second
#define int long long
#define lb long double
#define pb push_back
#define endl '\n'//交互题删掉此
#define all(v) (v).begin(),(v).end()
#define PII pair<int,int>
#define rep(i,x,n) for(int i=x;i<=n;i++)
#define dwn(i,n,x) for(int i=n;i>=x;i--)
#define ll_INF 0x7f7f7f7f7f7f7f7f
#define INF 0x3f3f3f3f
#define debug(x) cerr << #x << ": " << x << endl
#define io ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
int Mod(int a,int mod){return (a%mod+mod)%mod;}
int lowbit(int x){return x&-x;}//最低位1及其后面的0构成的数值
int qmi(int a, int k, int p){int res = 1 % p;while (k){if (k & 1) res = Mod(res * a , p);a = Mod(a * a , p);k >>= 1;}return res;}
int inv(int a,int mod){return qmi(a,mod-2,mod);}
int n;
const int N=2e5+10;
int a[N];
void solve()
{cin>>n;rep(i,1,n)cin>>a[i];rep(i,1,n-1){if(a[i]%2)if(a[i+1]>0)a[i+1]--,a[i]--;}rep(i,1,n)if(a[i]%2){NO;return;}YES;
}
signed main()
{io;int _;_=1;//cin>>_;while(_--)solve();return 0;
}

4620. 旅行

前置知识:
树形dp,树的最长路径,维护最长和次长权值。
1.题目分析:
题目有个限制条件其实是用来迷惑我们的。
即:在经过任何一条边之前,你的现有能量都不能少于该边所需消耗的能量(否则,将无法顺利通过该边)。
举个简单的例子:
一条简单路径(A,B,C,D为节点):A->B->C->D;
经过A->B->(还没有到C)之后能量值已经小于0,那么我们可以将原来的路径优化成C->D;
这其实也就说明了,我们利用树形DP得到的最大值的路径中就不会出现能量值小于0的情况,也就是说如果有能量值小于0
的情况,他绝对不可能是能量值最大的解。
2.枚举:
接下来我们枚举每一种方案,然后得出能量最大值即可,那么我们如何枚举每一种方案呢,我们可以根据方案中树的最高点是哪个点来分析,这样的枚举是不重不漏的。
3.根据树形DP,类似于树的最长路径来做就可以了。

#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
const double eps=1e-7;
#define YES cout<<"YES"<<endl
#define NO cout<<"NO"<<endl
#define x first
#define y second
#define int long long
#define lb long double
#define pb push_back
#define endl '\n'//交互题删掉此
#define all(v) (v).begin(),(v).end()
#define PII pair<int,int>
#define rep(i,x,n) for(int i=x;i<=n;i++)
#define dwn(i,n,x) for(int i=n;i>=x;i--)
#define ll_INF 0x7f7f7f7f7f7f7f7f
#define INF 0x3f3f3f3f
#define debug(x) cerr << #x << ": " << x << endl
#define io ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
int Mod(int a,int mod){return (a%mod+mod)%mod;}
int lowbit(int x){return x&-x;}//最低位1及其后面的0构成的数值
int qmi(int a, int k, int p){int res = 1 % p;while (k){if (k & 1) res = Mod(res * a , p);a = Mod(a * a , p);k >>= 1;}return res;}
int inv(int a,int mod){return qmi(a,mod-2,mod);}
int n;
const int N=3e5+10,M=N*2;
int h[N],e[M],ne[M],w[M],w_c[N],idx;
int res;
void add(int a,int b,int c)
{e[idx]=b,ne[idx]=h[a],w[idx]=c,h[a]=idx++;
}
int dfs(int u,int fa)
{int s=0,d1=0,d2=0;for(int i=h[u];~i;i=ne[i]){int j=e[i];if(j==fa)continue;int w_s=dfs(j,u)-w[i];s=max(s,w_s);if(w_s>d1)d2=d1,d1=w_s;else if(w_s>d2)d2=w_s;}res=max(res,d1+d2+w_c[u]);return max(w_c[u],s+w_c[u]);
}
void solve()
{memset(h,-1,sizeof h);cin>>n;rep(i,1,n)cin>>w_c[i];rep(i,1,n-1){int a,b,c;cin>>a>>b>>c;add(a,b,c),add(b,a,c);}dfs(1,-1);cout<<res<<endl;
}
signed main()
{io;int _;_=1;//cin>>_;while(_--)solve();return 0;
}

AcWing第 70 场周赛题解相关推荐

  1. Acwing 第70场周赛

    4618. 两个素数 题目 提交记录 讨论 题解 视频讲解 给定一个正整数 x ,请你找到两个素数 a,b ,要求: a≤b a×b=x 输出 a 和 b . 输入格式 共一行,一个整数 x . 输出 ...

  2. Acwing第 70 场周赛【未完结】

    https://www.acwing.com/activity/content/competition/problem_list/2337/ 目录 4618. 两个素数 4619. 减法操作 4618 ...

  3. acwing第72场周赛题解

    4624. 最小值: 题目链接: 4624. 最小值 - AcWing题库 给定两个整数 a,b,请你计算并输出 a,b,⌊a+b3⌋ 这三个整数中的最小整数.⌊ ⌋ 表示下取整,即忽略小数部分,只取 ...

  4. Acwing第77场周赛题解

    T1:AcWing 4716. 进球 开哈希表存字母数量,一旦数目超过 ,就输出,水题 #include <iostream> #include <cstring> #incl ...

  5. Acwing第37场周赛题解

    文章目录 A B C A 原题链接4296. 合适数对 方法: 题目的数据量给的不是很大,直接双循环,通过公式暴力求解就好了. #include<iostream> using names ...

  6. 【题解】AcWing 第73场周赛题解

    A. 数对 题目链接:AcWing 4704. 数对 没啥好说的,题目意思都给你写在脸上了.直接暴力 O ( N 2 ) \mathcal{O}(N^2) O(N2). #include <io ...

  7. 【题解】AcWing 第71场周赛题解

    A. 三个整数 题目链接:AcWing 4621. 三个整数 一眼题,由于保证了一定有解,所以只需要保证 x , y x,y x,y 尽量大, z z z 尽量小即可.即 x x x 取 b b b, ...

  8. AcWing第 71 场周赛题解

    目录 4621. 三个整数 4622. 整数拆分 4623. 买糖果 4621. 三个整数 按要求枚举 void solve() {int a,b,c,d;cin>>a>>b& ...

  9. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

最新文章

  1. [mmu/cache]-cache的一些基本概念介绍
  2. J.U.C系列(四)FutrueTask的使用
  3. 【转】使用Eclipse的代码追踪功能
  4. python算法与数据结构-双向链表
  5. 小学二年几手工计算机的制作,小学二年级创意手工制作方法
  6. 《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)
  7. [html] 说说你对html中的置换元素和非置换元素的理解
  8. 腾讯注册狗头表情包商标
  9. linux swap 分区调控(swap分区 lvm管理)
  10. 删除同目录下面txt文件(利用os,fnmacth模块)
  11. 将图像中的某种颜色设为透明
  12. CIA:要破解最新iPhone/iOS我们也没辙
  13. 常用邮箱SMTP服务器地址大全
  14. vivado之FFT ip核的入门学习
  15. Hive return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask.……table could not be cleaned up.
  16. 谈谈我职业生涯中的三次潦倒--Leo病中的思考 续
  17. python输入一个英文句子 输出单词个数_C 统计英文句子“python is an interpreted language” 有多少个单词...
  18. c语言课程设计 选课系统,学生选课系统c语言课程设计.doc
  19. 窃听风云下载_窃听风云高清下载_窃听风云在线观看
  20. 【HTTP】Cookie、 LocalStorage 与 SessionStorage基本概念

热门文章

  1. linux下adb传输文件,使用adb在电脑和手机间传文件,adb手机传文件
  2. JUnit5学习之六:参数化测试(Parameterized Tests)基础
  3. Linux下通过bonding技术实现网络负载均衡及冗余
  4. ### java8之collector详解,以及结合toMap,sorted,groupingBy使用例子
  5. 如何通过财务共享推进财务精细化管理
  6. appium知识体系(思维导图/脑图)
  7. 使用VSCode调试JS
  8. 赛效:WPS表格如何粘贴复制筛选后的数据
  9. req.query和req.body的区别
  10. req请求的参数req.params - req.query - req.body