cf#748 div3
A 模拟题
//#include<bits/stdc++.h> #include<algorithm> #include<iostream> #include<cstdio> #include<cstring> #define lson rt<<1 //左孩子 #define inf 0x3f3f3f3f #define rson rt<<1|1//右孩子 #define MID(l,r) (l+r)>>1//右移运算符 typedef long long ll; typedef unsigned long long ull; using namespace std; int main() { int t; int a,b,c; int a1,b1,c1; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%d%d%d",&a,&b,&c); int maxn=max(a,(max(b,c))); if(maxn!=a) { a1=maxn+1-a; } else{ if(a==b||a==c) { a1=1; } else{ a1=0; } } if(maxn!=b) { b1=maxn+1-b; } else{ if(b==a||b==c) { b1=1; } else{ b1=0; } } if(maxn!=c) { c1=maxn+1-c; } else{ if(c==a||c==b) { c1=1; } else{ c1=0; } } printf("%d %d %d\n",a1,b1,c1); } return 0; }
B.不会写,maybe是dp,待补题
C.贪心
#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> #define lson rt<<1 //左孩子 #define inf 0x3f3f3f3f #define rson rt<<1|1//右孩子 #define MID(l,r) (l+r)>>1//右移运算符 typedef long long ll; typedef unsigned long long ull; using namespace std; const int N=4e5+5; int x[N]; int main() { int t; int n,k; scanf("%d",&t); while(t--) { //k:老鼠个数,n:洞口距离 scanf("%d%d",&n,&k); for(int i=1;i<=k;i++) { scanf("%d",&x[i]); x[i]=n-x[i]; } sort(x+1,x+k+1); ll sum=0; int cnt=0; for(int i=1;i<=k;i++) { sum+=x[i]; cnt++; if(sum>=n) { --cnt; break; } } printf("%d\n",cnt); } return 0; }
D.
#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> #define lson rt<<1 //左孩子 #define inf 0x3f3f3f3f #define rson rt<<1|1//右孩子 #define MID(l,r) (l+r)>>1//右移运算符 typedef long long ll; typedef unsigned long long ull; using namespace std; const int N=4e5+5; int a[45]; int main() { int t,n; scanf("%d",&t); while(t--) { memset(a,0,sizeof(inf)); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } int minn=inf; int maxn=-inf; int maxp=0; for(int i=1;i<=n;i++) { minn=min(minn,a[i]); } for(int i=1;i<=n;i++) { if(a[i]!=minn) { maxn=max(maxn,a[i]-minn); maxp=i; } } int gc=maxn; bool flag=false; for(int i=1;i<=n;i++) { if(a[i]!=minn) { flag=true; if(i!=maxp) { int temp=a[i]-minn; gc=__gcd(gc,temp); } } } if(flag==false) printf("-1\n"); else printf("%d\n",gc); } return 0; }
其他还没做。。。
浙公网安备 33010602011771号