2020 China Collegiate Programming Contest Weihai Site补题部分
A. Golden Spirit
签到题,首先把所有老人带到对岸,然后在对休息讨论一下即可。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int main()
{IO;int T=1;cin>>T;while(T--){ll n,x,t;cin>>n>>x>>t;ll p=2*n*t;if(p-2*t>=x) cout<<2*p<<'\n';else{ll w=x-p+2*t;if(w>=t) {p+=t;cout<<2*n*t+p+max(0ll,x-2*n*t)<<'\n';}elsecout<<2*p+w<<'\n';}}return 0;
}
C. Rencontre
大佬题解
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
//#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=200010;
int n,m;
int h[N],e[2*N],ne[2*N],idx;
ll w[2*N];
int sz[N];
int can[N][4];
int cnt[4];
void add(int a,int b,ll c)
{e[idx]=b;w[idx]=c;ne[idx]=h[a];h[a]=idx++;
}
ll res1,res2,res3;
void dfs(int u,int fa)
{for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];if(j==fa) continue;dfs(j,u);for(int k=1;k<=3;k++) can[u][k]+=can[j][k];res1+=w[i]*can[j][1]*(cnt[2]-can[j][2])+w[i]*can[j][2]*(cnt[1]-can[j][1]);res2+=w[i]*can[j][2]*(cnt[3]-can[j][3])+w[i]*can[j][3]*(cnt[2]-can[j][2]);res3+=w[i]*can[j][3]*(cnt[1]-can[j][1])+w[i]*can[j][1]*(cnt[3]-can[j][3]);}
}int main()
{IO;int T=1;//cin>>T;while(T--){memset(h,-1,sizeof h);cin>>n;for(int i=1;i<n;i++){int a,b;ll c;cin>>a>>b>>c;add(a,b,c),add(b,a,c);}for(int i=1;i<=3;i++){cin>>cnt[i];for(int j=1;j<=cnt[i];j++){int x;cin>>x;can[x][i]=1;}}dfs(1,-1);double d1=(double)res1/((double)cnt[1]*cnt[2]);double d2=(double)res2/((double)cnt[3]*cnt[2]);double d3=(double)res3/((double)cnt[1]*cnt[3]);double ans=(d1+d2+d3)/2;printf("%.9lf\n",ans);}return 0;
}
自己非常害怕树的问题,尤其是树形dp之类的
总结:像这种考虑贡献的可以尝试逐点考虑或者逐边考虑(本题)
D. ABC Conjecture
c=p1α1p2α2…pkαkc=p_1^{\alpha_1}p_2^{\alpha_2}\dots p_k^{\alpha_k}c=p1α1p2α2…pkαk
只要存在αi>1\alpha_i>1αi>1就能够满足题意,如下尝试构造一组ababab,不妨设αi>1\alpha_i>1αi>1
a=p1α1…(piαi−1)…p1α1a=p_1^{\alpha_1}\dots (p_i^{\alpha_i-1})\dots p_1^{\alpha_1}a=p1α1…(piαi−1)…p1α1
b=p1α1…[(pi−1)×piαi−1]…p1α1b=p_1^{\alpha_1}\dots [(p_i-1)×p_i^{\alpha_i-1}]\dots p_1^{\alpha_1}b=p1α1…[(pi−1)×piαi−1]…p1α1
明显上述a+b=ca+b=ca+b=c,且由于pi−1<pip_i-1<p_ipi−1<pi,脑补一下rad(abc)<crad(abc)<crad(abc)<c一定成立
由于c范围很大,如果你只会线性筛只需要先线性筛质数,然后试除法分解质因数,但是可能分解不彻底,对于分解之后剩下的部分只需要特判一下(由于(107)3>1018(10^7)^3>10^{18}(107)3>1018),如果存在大于10710^7107的质因数,该质因数的次幂最大是2。由此可特判
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=10000010;
int cnt,prime[N];
bool st[N];
void init(int n)
{for(int i=2;i<=n;i++){if(!st[i]) prime[++cnt]=i;for(int j=1;prime[j]<=n/i;j++){st[i*prime[j]]=1;if(i%prime[j]==0) break;}}
}
int main()
{IO;int T=1;cin>>T;init(10000000);while(T--){ll c;cin>>c;bool ok=0;for(int i=1;i<=cnt;i++){ll p=prime[i];int s=0;if(c%p==0){while(c%p==0)c/=p,s++;}if(s>=2) ok=1;}ll x=sqrt(c);if(c>1&&1ll*x*x==c) ok=1;if(ok) cout<<"yes\n";else cout<<"no\n";}return 0;
}
如果没想到上述特判方法那么需要更快速的方法分解质因数,Pollard’s rho模板题?我想可能出题人本意不是这个,会的越多就能越暴力解决问题,降低思维难度!!!
总结:做题还是需要多想想,而且要相信对于自己现在的掌握的算法已经足够解决一些题目。
G. Caesar Cipher
线段树+hash
看到这个题想到hash了,不过由于hash需要取模而且题目中也需要取模自己就非常乱,根本不明白什么时候取哪个模
2020 China Collegiate Programming Contest Weihai Site补题部分相关推荐
- 2020 China Collegiate Programming Contest Qinhuangdao Site 补题部分
已经补AEFGK E. Exam Results 枚举+二分+动态开点权值线段树O(nlogN)O(nlogN)O(nlogN) 智商太低,想不到什么贪心只能暴力数据结构维护 对于所有学生的最高成绩只 ...
- 2020 China Collegiate Programming Contest Weihai Site H.Message Bomb
H.Message Bomb 题目链接-H.Message Bomb 题目大意 输入sss行数据, 如果t=1t=1t=1,则表示第x个学生加入了第yyy个组.可以肯定的是,这个学生以前不在这个小组里 ...
- acm-(辗转相除法、丢番图方程)2020 China Collegiate Programming Contest Qinhuangdao Site I. Interstellar Hunter
传送门 本题其实就是给定若干个整数向量(x1,y1),(x2,y2),...,(xn,yn)(x_1,y_1),(x_2,y_2),...,(x_n,y_n)(x1,y1),(x2,y2),. ...
- 2020 China Collegiate Programming Contest, Weihai B Labyrinth
写在前面: 这题赛时就过了二十多个人感觉还是榜歪了,完全没有到金牌题的水平,算是一道纯思维题吧,只需要简单的bfs,而且赛中也有一些铜牌区的队伍能过,所以还是要敢于开题,说不定就能写呢 题目链接 La ...
- 2020 China Collegiate Programming Contest Changchun F - Strange Memory(dsu on tree + 位运算小技巧)
题目连接: https://codeforces.com/gym/102832/problem/F 首先写这个题的时候要注意内存的问题 不要瞎几把define int long long 题解: 考虑 ...
- 2018 China Collegiate Programming Contest - Jilin Site F - The Hermit HDU - 6560 思维
链接Problem - 6560 题意 有n个站点每个站点可以发送完美信号 关于完美信号的定义 有i j k三个站点 分别保证 i<j<k dis(i,j)> dis(j,k) 并且 ...
- acm -(并查集、启发式合并、gcd、枚举因子)2020 China Collegiate Programming Contest Changchun Onsite K. Ragdoll
传送门 本题考虑直接对每个iii求出所有满足ij=gcd(i,j)i^j=gcd(i,j)ij=gcd(i,j)的jjj,然后存在ggg数组中,对于查询修改操作维护一个并查集即可,合并的时候采用启发式 ...
- 2016 China Collegiate Programming Contest Final
2016 China Collegiate Programming Contest Final Table of Contents 2016 China Collegiate Programming ...
- 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program
2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program 题目链接 The kingdom of Z ...
最新文章
- java某市出租车_智慧职教mooc的APPJavaEE企业级网站开发章节测验答案
- Java Arrays.sort()的几种用法
- SoftReference的用法
- linux下修改主机名
- mysql连接数紧张_Mysql 查看连接数,状态,最大并发数
- list python 转tensor_Tensorflow模型量化4 --pb转tflite(uint8量化)小结
- php 一句话木马、后门
- 看透设计模式-行为型模式
- java核心教程_核心Java教程
- 【Zookeeper学习】Zookeeper-3.4.6安装部署
- Linux内核解读入门(转CSDN)
- (十一)【数电】(组合逻辑电路)数据分配器和数据选择器
- ENVI5.2裁剪遥感图像指定区域
- xshell 配置公钥 免密码登陆
- linux b类地址设24位掩码,CIDR,子网掩码以及划分子网超网
- 计算机维修工实操,计算机维修工(三级)操作技能练习题.pdf
- 灰狼优化算法GWO求解置换流水车间调度问题FSP
- StarRocks 运维工具 StarGo
- Kubernetes实战(二十)-kubernetes二进制文件方式部署集群(非安全)(下)
- Geometry理解
热门文章
- io流图解 java_详细讲解JAVA中的IO流
- uc3842开关电源电路图_UC3842 的原理及应用详解 (上)
- docker es持久化_使用docker数据卷对容器数据持久化
- 算法题目——子序列和问题(poj-3061)(尺取法)
- leetcode977. 有序数组的平方(暴力+双指针)
- 7-1 输出全排列 (20 分)(全排列+递归+图解)Come Baby
- 二叉树最近公共祖先相关题目(Leetcode题解-Python语言)
- ai进入轮廓模式怎么退出_详解AI中扩展、扩展外观、轮廓化描边、创建轮廓
- 《C++ Primer》14.3节练习
- java.sql 拒绝连接_hive jdbc 拒绝连接问题