GDKOI 2021 Day3 PJ 懵逼记
今天早了一点起来,初三的大奆都来做比赛了,
自然,自测的有许多 AK
虽然今天的题比昨天简单,但还是脑子还是十分迟钝,以至于贪心都想不出
真为明天的提高组而担忧
T1
斜率被卡 90 ,直接用勾股定理判断边的放大比例是否相等,注意可以不开方
#include<bits/stdc++.h>
using namespace std;
const double eps=1e-7;
typedef long long LL;
int T;
LL z1[5],x[10],y[10],z2[5],gg;
inline LL Dis(int p,int q) {
return (x[p]-x[q])*(x[p]-x[q])+(y[p]-y[q])*(y[p]-y[q]);
}
inline LL Gcd(LL p,LL q) {
return q?Gcd(q,p%q):p;
}
inline bool Chk() {
if(z1[1]!=z1[2]||z2[1]!=z2[2])return false;
if(z1[1]!=z1[3]||z2[1]!=z2[3])return false;
if(z1[2]!=z1[3]||z2[2]!=z2[3])return false;
return true;
}
int main() {
freopen("triangle.in","r",stdin);
freopen("triangle.out","w",stdout);
scanf("%d",&T);
while(T--) {
for(int i=1;i<7;i++)scanf("%lld%lld",&x[i],&y[i]);
z1[1]=Dis(1,2),z1[2]=Dis(1,3),z1[3]=Dis(2,3);
z2[1]=Dis(4,5),z2[2]=Dis(4,6),z2[3]=Dis(5,6);
sort(z1+1,z1+4),sort(z2+1,z2+4);
gg=Gcd(z1[1],z2[1]),z1[1]/=gg,z2[1]/=gg;
gg=Gcd(z1[2],z2[2]),z1[2]/=gg,z2[2]/=gg;
gg=Gcd(z1[3],z2[3]),z1[3]/=gg,z2[3]/=gg;
if(Chk())puts("YES");
else puts("NO");
}
}
T2
贪心,由于比 x 排名高的只有\(\sum_{j=1}^i r_j-1\)个,考虑用贪心
- 最优,比 x 高的都是 100 ,比 x 低的都是 0 , x 是 99.99999 ,即无限接近 100
只要有一个科排名低于 x 就比 x 分数低
若 \(sum\le (n-1)(i-1)\) 排名为 1 ,否则为 \(sum+1-(n-1)(i-1)\) - 最坏,比 x 高的都是 100 ,比 x 低的都是 0 , x 是 0.000001 ,即无限接近 0
只要有一个科排名高于 x 就比 x 分数高
若 \(sum\ge n-1\) 排名为 n ,否则为 \(sum+1\)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int m;
LL n,sm;
int main() {
scanf("%lld%d",&n,&m);
for(int i=1,x;i<=m;i++) {
scanf("%d",&x);
sm+=1LL*x-1LL;
if(sm<=1LL*(n-1)*(i-1))printf("1 ");
else printf("%lld ",sm-1LL*(n-1)*(i-1)+1);
if(sm>=n-1)printf("%lld\n",n);
else printf("%lld\n",sm+1);
}
}
T3
设 \(sum(x)=\sum_{i|x}\lambda(i),n=\Pi\ p_i^{e_i}\) ,若 \(e_k\) 有一个是奇数,则\(sum(x)\)可以抵消
否则,就是完全平方数,直接算出其个数还有其倍数的个数累加即可
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL mod=998244353;
LL n,ans;
int main() {
// freopen("number.in","r",stdin);
// freopen("number.out","w",stdout);
scanf("%lld",&n);
for(LL i=1;i<=sqrt(n);i++)
ans+=n/(i*i),ans>=mod?ans-=mod:1;
printf("%lld",ans);
}
T4
设 F[i][j] 为左右都到 i 的前后差为 j 的方案,发现只用枚举 \(\lfloor \frac{n}{2}\rfloor\) 就行了
\(F_{0,1}=1,i\in [1,\lfloor \frac{n}{2}\rfloor],j\in [1,n*n] F_{i,j}=\sum_{k=\max(j-n,0)}^{j+n} F_{i-1,k}*(n+1-|j-k|)\)
最后答案是 \(\sum_{j=1}^{n*n} F_{\lfloor \frac{n}{2}\rfloor,j}\)
若 n 是奇数,答案要乘 n+1 ,因为 \(\lfloor \frac{n+1}{2}\rfloor\) 可以放 0~n
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL mod=998244353;
int n,m;
LL ans,f[105][20005];
int main() {
freopen("sequence.in","r",stdin);
freopen("sequence.out","w",stdout);
scanf("%d",&n);
m=n*n+1,f[0][1]=1;
for(int i=1;i<=(n>>1);i++)
for(int j=1;j<=m;j++)
for(int k=max(j-n,0);k<=j+n;k++)
f[i][j]+=f[i-1][k]*(n+1-abs(j-k)),f[i][j]%=mod;
for(int i=1;i<=m;i++)ans+=f[n>>1][i],ans%=mod;
if(n&1)ans=ans*(n+1)%mod;
printf("%lld",ans);
}
End
GDKOI 都是思维题,本蒟蒻的思维还是要多加磨炼
GDKOI 2021 Day3 PJ 懵逼记的更多相关文章
- GDKOI 2021 Day1 PJ 爆炸记
早上睡到 7:10 分才想起今天有 GDKOI ,赶紧去买了一个面包赶去机房 发现隔壁的大奆都过来了.比赛时由于昨晚一直没睡好,打了两个小时的哈欠 T1 :暴力模拟 根据 \(r\) 和 \(c\) ...
- GDKOI 2021 Day2 PJ 去世记
比赛时和昨天一样困,后面的大奆打代码的速度简直了 T1 用 2.4.6.8 来与 5 抵消掉末尾的 0 ,然后用周期问题的方法直接乘起来并取个位 #include<bits/stdc++.h&g ...
- ZJOI2017 Day3 滚粗记
私のZJOI Day3 2017-3-21 07:52:53 今天,考了人生当中的第一次省选(虽然只是普及组三等奖但仍然有幸能体会一下).据胡老师说,这就是来体验一下被大神虐--真的是这样,听课听不懂 ...
- noip2017 PJ AK记
嗨小朋友们大家好,还记得我是谁吗?我就是为RE代言的蒟蒻--xzz day1 蛤?四楼只有一个考场???在逗我 然后解压 蛤?空军68年????我怎么不知道???huaji 蛤?T1这么sb?切掉 蛤 ...
- CSP2019懵逼记
CSP2019 考场二日游 CJ 旅游团 本来我是准备咕掉的, 但是被强 ♂ 烈要求更博了 Day -INF ~ Day -1 专题巩固和联考 前面半个月疯狂爆炸 后面半个月状态恢复了, 考得还行 联 ...
- NOIWC2019 懵逼记
弱省蒟蒻,第一次也是最后一次来冬令营.. Day [-inf,-1] \(woc\)咋啥都听不懂,没错在下划水王. Day 0 白天上课继续划水..晚上跑去试机,骗了半天交互的分就滚了..半夜里竟然睡 ...
- GDKOI 2021 Day1 TG 。。。
看着一群群比 LHF , HQX 还强的大佬涌进了机房,本蒟蒻表示慌得一批 T1 讲题人说最简单的签到题本蒟蒻表示... \(Update\) 用 ds , dt 两个变量记录点 i 连向 s 或 t ...
- APIO2017 懵逼记
Day -1: 移步http://www.cnblogs.com/juruolty/p/6854795.html Day 0: CTSC铁牌后,下一个就是APIO了. lmy,sxy,cxc,lh过来 ...
- 2021/1/20随记,MTU
背景: 事情是这样的,客户2台防火墙部署了ipsec,内网互通,但是其中ssh以及其他大命令之类的操作就会卡住,简单的vi命令可以使用. 解决: 排除网络问题,因为内网互通,其次是系统层面问题,最终定 ...
随机推荐
- mint-ui中messagebox的使用
效果图: 代码: // 安装 # Vue 1.x npm install mint-ui@1 -S # Vue 2.0 npm install mint-ui -S // 引入全部组件 import ...
- Blazor组件自做三 : 使用JS隔离封装ZXing扫码
Blazor组件自做三 : 使用JS隔离封装ZXing扫码 本文基础步骤参考前两篇文章 Blazor组件自做一 : 使用JS隔离封装viewerjs库 Blazor组件自做二 : 使用JS隔离制作手写 ...
- python并发——生产者消费者信号量实现
介绍 写扫描器的时候,需要让资产扫描结果一出来(生产者),另外一边就会开个线程去运行漏洞扫描(消费者). 但是又不能让结果没出来,另外一边消费者就开始干活了. 代码 # *coding:UTF-8 * ...
- vue项目中连接MySQL时,报错ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password:YES)
一.前言 我们前端很多时候在写vue项目的时候,会把后端的数据拿到本地来跑,在连接MySQL数据库的时候,可能出现一些问题,如: ER_ACCESS_DENIED_ERROR: Access deni ...
- springboot+maven实现模块化编程
1.创建新项目repo-modele 2.右键Repo_modele -> New -> Module-->next 分别创建bs-web,bs-service,bs-entity, ...
- Metaspaloit漏洞利用
Metaspaloit介绍Metaspaloit介绍 Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提 ...
- drf的JWT认证
JWT认证(5星) token发展史 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证.我们不再使用Session认证机制,而使用Json Web Token(本质就是tok ...
- VirtualBox安装Kali
VirtualBox安装Kali 下载VBox 去Virtual Box官网下载(根据操作系统选择版本,此处以Windows为例) 打开安装程序进行安装即可 安装Kali 去Kali Linux官网下 ...
- Lumia1520 手机刷 Windows10 arm双系统
注意问题 升级到Windows 10 Mobile 的需重新刷回WP8.1,否则解锁会失败 部分手机刷机win10arm后出现屏幕卡死现象,目前除了换屏或重新焊接暂无其他解决方案,请谨慎刷机(当然如果 ...
- 深入理解Kafka核心设计及原理(四):主题管理
转载请注明出处:https://www.cnblogs.com/zjdxr-up/p/16124354.html 目录: 4.1创建主题 4.2 优先副本的选举 4.3 分区重分配 4.4 如何选择合 ...