- 博客(19)
- 收藏
- 关注
原创 数据结构实训
6-1 两顶点之前有路径吗? (20 分)对于给定的无向图及两个图中的顶点,请实现一个函数,分别打印包含这两个顶点的连通分量中的顶点数,并判断这两个顶点之间是否有路径。函数接口定义:int hasPath(struct Graph *g, int v, int w);其中v和w是顶点图定义如下:#define MaxVertexNum 20 /* 最大顶点数 */struct Graph{ int v; /* 顶点数量 */ int Adj[MaxVertexNu
2021-09-04 16:10:00 1404
原创 2021-07-22
Laptop#include<bits/stdc++.h>using namespace std;#define MAXN 100010struct node{ int m,s;}f[MAXN];bool cmp(node x,node y){ return x.m>y.m;}int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>f[i].m>>f[i].s; }
2021-09-04 15:51:14 91
原创 UCF Local Programming Contest Round 1A
A.Briefcases Full of Money题意:有六个包分别装着面值1,5,10,20,50,100元的钞票,分别给出这六个包里钞票的张数,求选择哪个包钱最多,如果有两个包钱一样多选择钞票张数少的包代码:#include<cmath>#include<string>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int a
2021-09-04 15:50:21 104
原创 贪心练习题
Subsequence题意:求出序列中连续元素之和大于或等于S的子序列的最小长度。题解:1.序列所有数之和都小于s时不存在。2.初始i=0,j=0;sum+=a[j++]。当sum>=s时,这块长度为j-i。没有必要再往后加数了,可以尝试从前面减数。不断将i右移,sum-=a[i++],如果sum依旧大于等于s,取区间最小长度。将i不断右移直至sum小于s,此时再将j右移sum+=a[j++],使sum>=s,区间发生变化,i和j都右移了,取区间最小长度;代码:...
2021-09-04 15:49:43 104
原创 Sebsequence(尺取法)
Subsequence题意:题解:代码:#include<algorithm>#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;#define MAXN 100010int a[MAXN];int main(){ int t; cin>>t; int n,s; while(t--){
2021-07-18 16:52:52 83
原创 Codeforces Round #720 (Div. 2)
A. Nastia and Nearly Good Numbers#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; ll a,b; cin>>t; while(t--){ cin>>a>>b; if(b==1){ cout<<"NO"<<endl; }else{ cout<&l
2021-06-10 09:35:11 61
原创 Codeforces Beta Round #108 (Div2)
A - Marks#include<bits/stdc++.h>using namespace std;#define MAXN 110int mx[MAXN];int main(){ int n,m; cin>>n>>m; string s[MAXN]; for(int i=0;i<n;i++){ cin>>s[i]; for(int j=0;j<m;j++){ mx[j]=max(mx[j],s[i][j]-'0
2021-05-24 07:28:28 57
原创 Codeforces Round #709 (Div. 2)
A. Prison Break 题意:有axb间牢房。求Michael 最少打通多少面墙,无论他在哪个牢房都可以逃出去题解:一共需要打通axb面墙代码:#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<map>using namespace std;int main(){
2021-05-20 09:47:18 63
原创 蒙特卡罗求自然指数e(Python)
x轴与y=1/x,x=1,x=2围成的面积为ln2ln2/1=cnt/necnt/n=2,所以e等于对2开cnt/n次方,即2n/cntfrom random import uniformfrom math import sqrtn=eval(input())cnt=0for i in range(1,n+1): x=uniform(1,2) y=uniform(0,1) if y<1/x: cnt+=1e=2**(n/cnt)print(e)
2021-05-17 09:12:05 805 2
原创 Educational Codeforces Round 109 (Rated for Div. 2)
A. Potion-making题意:在每一步操作中中可以加一升水或者一升精华。如果加e升精华和w升水,精华百分含量为e/(e+w) .100%,水的百分含量为w/(e+w) .100%.给精华的百分含量,求最小的操作数题解:e/w=(100-k)/k, 记temp=gcd(100-k,k)最小操作数为(100-k)/temp+k/temp代码:#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(
2021-05-17 08:43:17 155
原创 Codeforces Beta Round #107(Div2)
A - Soft Drinking 题意:一共有n位朋友,k瓶l毫升的饮料,还有c个酸橙,每个酸橙会被切成d片,有p克盐。配一瓶酒需要nl毫升饮料,一片酸橙,np克盐,问每个朋友可以配几瓶代码:#include<algorithm>#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int main(){ in
2021-05-16 13:27:46 128
原创 Codeforces Round #719 (Div. 3)
A. Do Not Be Distracted!#include<bits/stdc++.h>using namespace std;int a[26];int main(){ int t; cin>>t; int n; string s; char c; while(t--){ memset(a,0,sizeof(a)); cin>>n; cin>>s;
2021-05-14 09:11:14 63
原创 1816. 连通(BFS+DFS+并查集)
连通题意:如果无向图 G每对顶点v和w都有从v到w的路径,那么称无向图G是连通的。现在给定一张无向图,判断它是否是连通的。第一行有 2 个整数 n,m(0<n,m<10^6)。接下来m行每行有 2 个整数u,v表示u和v有边连接。代码:#include<algorithm>#include<iostream>#include<cmath>#include<cstring>#include<vector>#include&
2021-05-06 11:00:59 105
原创 迷宫(BFS)
#include<iostream>#include<queue>using namespace std;int vis[30][50];int m[4][2]={{1,0},{0,-1},{0,1},{-1,0}};char c[4]={'D','L','R','U'};string s[30];struct node{ int x; int y; string str;};void bfs(){ queue<node> q; node p;
2021-04-15 11:00:08 138
原创 数的分解
数的分解:把2019分解为三个各不相同的正整数,并且要求每个整数里都不含2和4,求一共有多种分解方法#include<bits/stdc++.h>using namespace std;bool check(int a,int b,int c){ int n,t=0; while(a){ t=a%10; if(t==2||t==4){ return false; } a=a/10; } while(b){ t=b%10; if(t==2||t==4){
2021-04-13 20:32:03 98
原创 2021-04-11
#include<bits/stdc++.h>using namespace std;int main(){ string s[30]; for(int i=0;i<30;i++){ cin>>s[i]; } int sum=0; for(int i=0;i<30;i++){ for(int j=0;j<50;j++){ for(int k=j+1;k<50;k++){ if(s[i][j]<s[i][k]) sum+
2021-04-11 15:58:45 46
原创 Codeforces Round #697 (Div. 3)
C. Ball in Berland题意:一个班级有a个男生和b个女生,且有k种男女组合(同一个男生或者女生可以出现在多个组合当中)。每个班中必须有两对组合出席舞会,且这两个组合中男生女生各不相同。让你求出一共有多少种可能的组合方式。题解:代码:...
2021-02-10 17:06:45 75
原创 数学考试(牛客)
题目链接题意:题解:代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;ll sum[2000010],a[2000010];int main(){ int t,n,k,flag; ll maxx1,maxx2,temp; cin>>t; while(t--){ cin>>n>>k; maxx1=-100010,maxx2=-1000010;
2020-11-27 19:15:57 257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人