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命令可以使用. 解决: 排除网络问题,因为内网互通,其次是系统层面问题,最终定 ...
随机推荐
- 实现一个promise.all方法
思路: 1:首先明白all的用法 2:promise.all可以接受一个由promise数组作为参数,并且返回一个promise实例, 3:promise.all([a,b,c...]).then方法 ...
- Java基础之浅谈接口
前言 前几篇文章我们已经把Java的封装.继承.多态学习完了,现在我们开始比较便于我们实际操作的学习,虽然它也是Java基础部分,但是其实入门容易,精通很难. 我认真的给大家整理了一下这些必须学会.了 ...
- 基于Nginx实现反向代理
一.nginx的简介 Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服 ...
- Spring配置文件-Bean实例化的三种方式
1.无参构造方法实例化(详见我的博客) 2.工厂静态方法实例化 创建StaticFactory类 public class StaticFactory { public static UserDao ...
- java实现sftp文件上传下载
/** * * @param filePath 文件全路径 * @param ftpPath 上传到目的端目录 * @param username * @param password * @param ...
- C++内存空间管理
C++内存空间管理 1.C++内存机制 1.栈(Stack),函数中的局部变量,由编译器负责分配释放,函数结束,变量释放. 2.堆(Heap),通过new 申请的内存,由delete或delete[] ...
- 结合手工注入编写一个SQL盲注脚本——以SQLi-Labs less16为例
一.分析测试注入点 1.抓包,查看响应数据包 2.先随便输入一个账号密码,再测试万能密码 1") or 1=1 -- # 3.发现响应数据包的Content-Length字段值不同.错误状态 ...
- node.js - http、模块化、npm
今天是node学习的第二天,其实越往后面学越感觉有点熟悉的味道了,光针对于node来说哈,为什么呢,因为我之前学过一点云计算的东西,当时感觉没什么用搞了下服务器客户端这些,没想到这里还能用一用,至少看 ...
- SpringBoot 入门及配置
1.首先创建Maven文件,右键单击鼠标,others搜索Maven,点击Maven Project 2.点击下一步,打上勾下一步,输入包名和项目名称 3.第三步修改pom.xml导入Maven依赖M ...
- github ations 入门使用
在使用之前,我们了解一下什么是 Github Actions. 在 GitHub Actions 的仓库中自动化.自定义和执行软件开发工作流程. 您可以发现.创建和共享操作以执行您喜欢的任何作业(包括 ...