当前位置: 首页 > news >正文

备战蓝桥杯---刷杂题2

显然我们直接看前一半,然后我们按照斜行看,我们发现斜行是递增的,而同一行从左向右也是递增的,因此我们可以直接二分,同时我们发现对称轴的数为Ck,2k.

我们从16斜行枚举即可

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int n;
LL C(int a,int b){LL res=1;for(int i=a,j=1;j<=b;i--,j++){res=res*i/j;if(res>n) return res;}return res;
}
bool check(int k){LL l=k*2,r=n;if(l>r) return 0;while(l<r){LL mid=l+r>>1;if(C(mid,k)>=n) r=mid;else l=mid+1;}if(C(r,k)!=n) return 0;cout<<(r+1)*r/2+k+1;return 1;
}
int main(){cin>>n;for(int k=16;;k--){if(check(k)){break;}}
}

2.spfa的本质(妙)

我们令f[i][j]表示在i步以内可以生成j作物的方法的集合,我们记录其最小时间,答案就是f[n-1][t],对于初始值,f[0][xi]=0,对于f[i][j],我们可以看看j的生成方式即可,即f[i][j]=min(f[i][j],max(f[i-1][x],f[i-1][y])),复杂度为(n-1)k,我们加个spfa思想优化,j是由x,y更新的,只有x,y更新j才可能更新,

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2010,M=200010;
int n,m;
int h[N],e[M],w[N],target[M],ne[M],idx;
int dis[N];
queue<int> q;
bool st[N];
void add(int a,int b,int c){e[idx]=b,target[idx]=c,ne[idx]=h[a],h[a]=idx++;
}
void spfa(){while(q.size()){int x=q.front();q.pop();st[x]=0;for(int i=h[x];i!=-1;i=ne[i]){int y=e[i],z=target[i];if(dis[z]>max(dis[x],dis[y])+max(w[x],w[y])){dis[z]=max(dis[x],dis[y])+max(w[x],w[y]);if(!st[z]){q.push(z);st[z]=1;}}}}
}
int main(){int k,T;cin>>n>>m>>k>>T;memset(h,-1,sizeof(h));for(int i=1;i<=n;i++) scanf("%d",&w[i]);memset(dis,0x3f,sizeof(dis));while(m--){int x;scanf("%d",&x);dis[x]=0;q.push(x);st[x]=1;}while(k--){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);}spfa();cout<<dis[T];
}

3.欧拉函数:

下面是数学推导:

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL gcd(LL a,LL b){return b?gcd(b,a%b):a;
}
LL phi(LL m){LL res=m;for(LL i=2;i<=m/i;i++){if(m%i==0){while(m%i==0) m/=i;res=res/i*(i-1);}}if(m>1) res=res/m*(m-1);return res;
}
int main(){int T;cin>>T;while(T--){LL a,m;cin>>a>>m;LL d=gcd(a,m);cout<<phi(m/d)<<endl;}
}

http://www.lryc.cn/news/336906.html

相关文章:

  • .[[backup@waifu.club]].svh勒索病毒数据怎么处理|数据解密恢复
  • SpringFramework实战指南(八)
  • Ceph学习 -4.Ceph组件介绍
  • Python100个库分享第13个—awesome-slugify(处理Unicode)
  • 01 SQL基础 -- 初识数据库与安装
  • PyTorch搭建Autoformer实现长序列时间序列预测
  • FFmpeg: 简易ijkplayer播放器实现--06封装打开和关闭stream
  • 使用Android完成案例教学
  • 面向对象设计原则实验“依赖倒置原则”
  • PMP考试到底难在哪里?
  • Linux执行命令监控详细实现原理和使用教程,以及相关工具的使用
  • 算法设计与分析实验报告c++实现(生命游戏、带锁的门、三壶谜题、串匹配问题、交替放置的碟子)
  • 【电子通识】热风枪的结构与使用方法
  • mysql知识点
  • css Animation 动画-右进左出
  • 第十三届蓝桥杯省赛大学B组填空题(c++)
  • 天星金融(原小米金融)深耕金融知识领域,助力消费者提升金融素养
  • 中国手机频段介绍
  • 企业如何使用SNP Glue将SAP与Snowflake集成?
  • 算法设计与分析实验报告c++实现(最近点对问题、循环赛日程安排问题、排序问题、棋盘覆盖问题)
  • Vue - 你知道Vue中computed和watch的区别吗
  • POJ2976 Dropping tests——P4377 [USACO18OPEN] Talent Show G 【分数规划二分法+贪心/背包】
  • 【生产实习-毕设】pyspark学生成绩分析与预测(上)
  • 【华为笔试题汇总】2024-04-10-华为春招笔试题(第二套)-三语言题解(CPP/Python/Java)
  • Windows 文件夹被占用无法删除
  • PHP+MySQL组合开发 易企秀H5场景源码系统 带完整的安装代码包以及搭建教程
  • 抖音小店入驻有什么条件?资金少,没经验的普通人做得起吗?
  • 游戏行业科普 (二)游戏是怎么做出来,怎么卖出去的?
  • Java研学-RBAC权限控制(二)
  • 20. 【Android教程】拖动条 SeekBar