day4下
来源:互联网 发布:西地那非淘宝 编辑:程序博客网 时间:2024/06/11 06:13
t1
已知一个数列{a}的前两项a1,a2,且n>2时,f(n)=|f(n-1)-f(n-2)|。
你需要求出:这个数列中出现了多少个不同的数?
打个表一看,这个就是更相减损法,就是辗转相除
#include<cstdio>#include<cmath>#include<iostream>using namespace std;#define ll long longll ans;ll gcd(ll x,ll y){ if(!y) return x; ans+=x/y; return gcd(y,x%y);}ll a,b;int main(){ freopen("seq.in","r",stdin); freopen("seq.out","w",stdout); scanf("%lld%lld",&a,&b); if(a<b) swap(a,b); gcd(a,b); printf("%lld",ans+1);}
t2
弄一个树,上面的点代表车的重量,叶节点是每个城市,儿子就是比这个车的重量小的,像是个大根堆
#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#include<vector>#define ll long long#define M 510000struct st{ int x,y,s; inline bool operator <(const st &b)const{ return s>b.s; } }e[M];int n,m,f[M],v[M],size[M],son[M][2],N;ll ans[M];int find(int x){ return f[x]=f[x]==x?x:find(f[x]);}void dfs(int x,int fat,ll cnt){ if(fat){ if(v[x]==v[fat]) size[x]=size[fat]; else cnt+=1ll*(size[fat]-size[x])*(size[fat]-size[x]); } if(son[x][0]) dfs(son[x][0],x,cnt),dfs(son[x][1],x,cnt); else ans[x]=cnt; return ;}int main(){ freopen("car.in","r",stdin); freopen("car.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].s); std::sort(e+1,e+m+1); for(int i=1;i<=n;i++) f[i]=i; for(int i=1;i<=n;i++) size[i]=1; N=n; for(int i=1;i<=m;i++){ int fx=find(e[i].x);int fy=find(e[i].y); if(fx==fy) continue; son[++N][0]=fx; son[N][1]=fy; f[fx]=f[fy]=N; f[N]=N;v[N]=e[i].s; size[N]=size[fx]+size[fy]; } dfs(N,0,0); for(int i=1;i<=n;i++) printf("%lld ",ans[i]);}
阅读全文
1 0
- day4下
- day4
- day4
- day4
- day4
- DAY4
- DAY4
- Day4
- day4
- day4
- Day4
- Day4
- Day4
- day4
- day4
- day4
- DAY4
- Day4
- React-Native全球化语言切换工具库react-native-i18n
- QT 鼠标形状设置
- 斑马GK888T打印机跑纸(打印半张以及闪红灯)解决办法
- 树的基本操作
- MySQL慢查询(一)
- day4下
- HTML 5的革新之一:语义化标签一节元素标签。
- P2768 珍珠项链
- 2017.11.02【NOIP提高组】冲刺A组 总结
- 搭建python 环境_Eclipse
- 【Tensorflow实战计算机视觉】 之 MNIST数据集
- jacoco 介绍 与offline 模式
- Java IO
- 67-经典问题解析五