Day4下午
不会啊。
T1
找规律: 辗转相减,加速。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
long long a,b,c,ans=;
int main()
{
freopen("seq.in","r",stdin);
freopen("seq.out","w",stdout);
scanf("%lld%lld",&a,&b);
if(abs(a-b)==)
{
cout<<(a+);
return ;
}
if(a<b)
{
c=a;
a=b;
b=c;
} while(a&&b)
{
if(b<a-b)
b=a-b;
c=a-b;
if(c<b)
{a=b;b=c;}
else
if(c>b)
{a=c;}
else
if(b==c)
{a=c;ans--;}
ans++;
if(b==)
{
cout<<ans+a-<<endl;
return ;
}
}
cout<<ans<<endl;
return ;
}
first
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
long long a,b,c,ans;
int main()
{
freopen("seq.in","r",stdin);
freopen("seq.out","w",stdout);
scanf("%lld%lld",&a,&b);
if(a<b)
{
c=a;
a=b;
b=c;
}
c=a%b;
while(c)
{
ans+=a/b;
a=b;b=c;c=a%b;
}
ans+=a/b;
ans++;
cout<<ans<<endl;
return ;
}
除法加速
T2
好写的一种方法,直接建一棵最大生成树。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#include<ctime>
using namespace std;
const int N=;
struct node{
int x,y,z;
}a[N*];
int f[N],size[N],last[N];
int n,m;
long long ans[N];
bool cmp(node v,node u)
{ return v.z>u.z;}
int find(int x)
{
while(x!=f[x])
x=f[x]=f[f[x]];
return x;
}
int main()
{
freopen("car.in","r",stdin);
freopen("car.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z); sort(a+,a++m,cmp);
for(int i=;i<=n;i++)
f[i]=i,size[i]=,last[i]=;
int f1,f2,i=;
f1=find(a[].x);f2=find(a[].y);
if(f1!=f2)
f[f1]=f2,size[f2]+=size[f1];
while(i<=m+)
{
while(a[i].z==a[i-].z)
{
f1=find(a[i].x);
f2=find(a[i].y);
if(f1!=f2)
f[f1]=f2,size[f2]+=size[f1];
i++;
}
for(int j=;j<=n;j++)
{
ans[j]+=(1LL*size[find(j)]-1LL*last[j])*(1LL*size[find(j)]-1LL*last[j]);
last[j]=size[f[j]];
}
f1=find(a[i].x);f2=find(a[i].y);
if(f1!=f2)
f[f1]=f2,size[f2]+=size[f1];
i++;
}
for(int i=;i<=n;i++)
printf("%lld ",ans[i]);
cout<<'\n'<<clock();
return ;
}
first 30
我自己测得50%的数据试过的,跑的贼快。不知道哪错了。
反正我的做法是O(nm)的不是正解。
正解是见一棵最大生成树,
T3
部分分dp
很难noi思维难度
Day4下午的更多相关文章
- Day4下午解题报告
		
预计分数:30+30+0=60 实际分数:30+30+10=70 稳有个毛线用,,又拿不出成绩来,, T1 https://www.luogu.org/problem/show?pid=T15626 ...
 - qbzt day4 下午
		
有向图的强连通分量 强联通:两个点之间可以互相到达 如果某个图任意两个点都是强联通的,那么称这个图强联通 如果一个图的子图是强联通的,那么称这个图是强联通子图 一个图的极大强联通子图被称作强连通分量 ...
 - WC2017 游记
		
你若安好,便是晴天. 其实本来是有一个写的比较详细的游记的……然而后来给断了,懒得补上了,简单一点好了. Day 0 早早爬起来去赶高铁…… 路上没太多可以写的……坐高铁的时候想起来了一些不开心的事情 ...
 - Alpha冲刺! Day4 - 磨刀
		
Alpha冲刺! Day4 - 磨刀 今日已完成 晨瑶:和大家交流了一下,反思这阶段团队遇到的问题. 昭锡:今天跟学长交流了点问题,学习了Gson使用. 永盛:Gravel 数据库重新设计. 立强:看 ...
 - 搞了我一下午竟然是web.config少写了一个点
		
Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.c ...
 - System.DateUtils 3. IsPM、IsAM 判断是否为上、下午
		
编译版本:Delphi XE7 function IsPM(const AValue: TDateTime): Boolean; inline;function IsAM(const AValue: ...
 - NOI2018准备Day4
		
上午9点20至11点50就做出了一道题,一个很基础的二分挡住了,原因是浮点数精度问题的处理,现在还搞不懂,为什么用double存进去两位小数过不了,用double存进去两位小数再*100再/100就能 ...
 - 用一个下午从零开始搭建一个基础lbs查询服务
		
背景 现在做一个sns如果没有附近的功能,那就是残缺的.网上也有很多现成的lbs服务,封装的很完整了. 我首先用了下百度lbs云,但是有点不适合自己的需要,因此考虑用mongodb建一个简单的lbs服 ...
 - 新蒂下午茶体基本版SentyTEA-Basic
		
一.目前的最新版新蒂下午茶体包含了7600+常用汉字,每个字都是手写而成,是一套充满手写感的中文字体,轻松.惬意,如同慢饮一杯下午茶.SentyTEA-Basic.ttf 这个一个新蒂下午茶体基本版 ...
 
随机推荐
- mybatis 批量update两种方法对比
			
<!-- 这次用resultmap接收输出结果 --> <select id="findByName" parameterType="string&qu ...
 - 2.Valid Parentheses (括号匹配)
			
Level:  Easy 题目描述: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...
 - Qt 学习之路 2(13):对话框简介
			
Qt 学习之路 2(13):对话框简介 豆子 2012年9月14日 Qt 学习之路 2 53条评论 对话框是 GUI 程序中不可或缺的组成部分.很多不能或者不适合放入主窗口的功能组件都必须放在 ...
 - react 拆分组件于组件
			
Todolist.js(这是父组件) import React, { Component,Fragment } from 'react'; import './style.css'; import T ...
 - vscode 注册表
			
Windows Registry Editor Version 5.00 ; Open files [HKEY_CLASSES_ROOT\*\shell\Open with VS Code] @=&q ...
 - 在Javascript中 声明时用"var"与不用"var"的区别
			
http://www.cnblogs.com/juejiangWalter/p/5725220.html var num = 0;function start() { num = 3;} 只要一 ...
 - linux 数据库管理
			
1.安装数据库: yum install mariadb.serversystemctl staus mariadbsystemctl start mariadbsystemctl enable ma ...
 - python基础之1--Python入门
			
第1章 Python生态圈 第2章 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 2.1 编程的目的: 计算机 ...
 - 如何使用线程安全的HashMap
			
转载:https://blog.csdn.net/qq_31493821/article/details/78855069 HashMap为什么线程不安全 导致HashMap线程不安全的原因可能有两种 ...
 - my25_Mysql操作技巧汇总
			
1. drop database 在数据量很大的情况下,最好先对表进行truncate,然后再drop database:不然会卡住很长的时间. 2. 数据的逻辑导入导出 如果数据量大,又需要进行逻辑 ...