- 博客(7)
- 收藏
- 关注
原创 hdu10
1011: 根据数据进行推算 大概是 当k>0时 直接降序排序 当k<=0时 输出1 2 3一直到n 题解也没证明。。 #include<bits/stdc++.h> using namespace std; int main(){ int T; scanf("%d",&T); while(T--){ int n,k; scanf("%d%*d%d",&n,&k); vector<i
2020-08-25 22:34:23
104
原创 hdu9
1009: 最简单的题 我们先找了上下界 很容易发现上届n+1,下届n 然后根据我们的思考 得出了下列代码 #include<bits/stdc++.h> using namespace std; int main() { int T; cin>>T; while(T--) { //ios::sync_with_stdio(false); int n,x,y; cin>>n>>x>>y; if(x+y>n+1) c
2020-08-16 19:17:16
266
原创 hdu6
1002: 最简单的题 模拟就ok 当时我还卡了 因为想暴力,枚举2-16进制 然后爆 仔细一想不需要 学到了isdigit函数可以判断数字 isalpha函数可以判断字母 #include<bits/stdc++.h> using namespace std; string ss,num1,num2,num3; char x; int minr; void get_num() { int now=1; for (char c:ss) { if (!is
2020-08-10 19:46:36
153
1
原创 hdu5
1001: 根据数学知识,得到了 1/h2=1/a2+1/b2=1/c2 然后预处理计算概率就行了 最后一个求逆元 可惜不管怎么都超时。。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=6e6+5; const ll mod=998244353; const ll Inf=1e18; int inv[N],sum[N]; int main() { inv[0]=1,inv[1]=1;
2020-08-08 11:43:16
182
原创 2020多校补题第四场
1011: 瞎算一通过了 看题解发现竟然直接输出就行 当时的代码: #include<bits/stdc++.h> using namespace std; const double G=6.67430*1e-11; int main() { int T; cin>>T; while(T--) { double a,b,d,t0; cin>>a>>b>>d>>t0; double cs=d; double
2020-08-03 22:42:12
150
原创 多校第三场补题
1004: 这道题我觉得就是一个贪心 先把p倍数的数据踢出 然后把剩下的片段划分成p倍数段,求max的段数 贪心直接从右往左找就行 用map来做 code: #include <bits/stdc++.h> using namespace std; int main() { int t,n,p,x,y,z; cin>>t; while(t--) { cin>>n>>p; map<int,int> mp; mp[0]=1; y
2020-08-02 10:56:32
163
原创 2020多校2补题
2020多校2 1010: 这道题我的思路是用二维数组表示可达性矩阵,然后找出连通数最大的点,把与其联通的其它点看作一个整体区块,将最小值减少到0,然后重复过程,直到全部变为0. 然后超时了。。二维数组加两层循环果然超了 后面才发现可以转化为树来做,可以将整个过程倒过来看,变成按照 b 的值从大到小依次加入每个点。 加入每个点 x 时遍历与 x 相连的所有边 (x, y),如果 y 在 x 之前加入且 x 和 y 不连通则将 x 和 y 合并,并将 y 所在连通块的树根的父亲设为 x,得到一棵有根树。那么每
2020-07-27 17:49:54
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人