[关闭]
@baobaobear 2020-02-25T13:09:26.000000Z 字数 5684 阅读 201

练习3

practise


A hesorchen

  1. //https://blog.csdn.net/hesorchen
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <cstring>
  5. #include <string>
  6. #include <cstdio>
  7. #include <queue>
  8. #include <cmath>
  9. #include <stack>
  10. #include <map>
  11. #include <set>
  12. using namespace std;
  13. #define ll long long
  14. #define lowbit(a) (a & (-a))
  15. #define mod 1000000007
  16. #define INF 0x3f3f3f3f
  17. #define endl "\n"
  18. #define MAX 100010
  19. int p[5];
  20. int main()
  21. {
  22. cin >> p[0] >> p[1] >> p[2];
  23. sort(p, p + 3);
  24. int ans = 0;
  25. ans += (p[2] - p[0]) / 2;
  26. p[0] += ((p[2] - p[0]) / 2) * 2;
  27. ans += (p[2] - p[1]) / 2;
  28. p[1] += ((p[2] - p[1]) / 2) * 2;
  29. // cout << ans << endl;
  30. sort(p, p + 3);
  31. if (p[0] == p[2])
  32. ans += 0;
  33. else if (p[1] == p[2])
  34. ans += 2;
  35. else if (p[1] == p[0])
  36. ans += 1;
  37. cout << ans << endl;
  38. return 0;
  39. }

B hesorchen

  1. //https://blog.csdn.net/hesorchen
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <cstring>
  5. #include <string>
  6. #include <cstdio>
  7. #include <queue>
  8. #include <cmath>
  9. #include <stack>
  10. #include <map>
  11. #include <set>
  12. using namespace std;
  13. #define ll long long
  14. #define lowbit(a) (a & (-a))
  15. #define mod 1000000007
  16. #define INF 0x3f3f3f3f
  17. #define endl "\n"
  18. #define MAX 100010
  19. struct node
  20. {
  21. int s, e;
  22. } p[100005];
  23. bool cmp(node a, node b)
  24. {
  25. if (a.s = b.s)
  26. return a.e < b.e;
  27. return a.s < b.s;
  28. }
  29. int main()
  30. {
  31. int n;
  32. cin >> n;
  33. for (int i = 0; i < n; i++)
  34. cin >> p[i].s >> p[i].e;
  35. sort(p, p + n, cmp);
  36. int ans = 0;
  37. int t1, t2;
  38. t1 = -2;
  39. t2 = -2;
  40. for (int i = 0; i < n; i++)
  41. {
  42. if (p[i].s <= t1)
  43. {
  44. continue;
  45. }
  46. else if (p[i].s <= t2)
  47. {
  48. t1 = t2;
  49. t2 = p[i].e;
  50. ans++;
  51. }
  52. else
  53. {
  54. ans += 2;
  55. t1 = p[i].e - 1;
  56. t2 = p[i].e;
  57. }
  58. }
  59. cout << ans << endl;
  60. return 0;
  61. }

C 194215091012

  1. #include <iostream>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<algorithm>
  5. using namespace std;
  6. void convert1(int n,char str[]);
  7. void convert2(int n,char str[]);
  8. int i,j;
  9. int main()
  10. {
  11. int n,m;
  12. int ans=0;
  13. char a[10000];
  14. char b[10000];
  15. scanf("%d",&n);
  16. m=n-1;
  17. convert1(n,a);
  18. convert2(m,b);
  19. for(int c=0;c<i;c++)
  20. {
  21. if(a[c]!=b[c])
  22. ans++;
  23. }
  24. printf("%d\n",ans);
  25. return 0;
  26. }
  27. void convert1 (int n,char str[])
  28. {
  29. i=0;
  30. if(n==0)
  31. printf("0\n");
  32. while(n>0)
  33. {
  34. str[i++]=n%2+'0';
  35. n=n/2;
  36. }
  37. }
  38. void convert2 (int n,char str[])
  39. {
  40. j=0;
  41. if(n==0)
  42. printf("0\n");
  43. while(n>0)
  44. {
  45. str[j++]=n%2+'0';
  46. n=n/2;
  47. }
  48. }

D 184215092008

python

  1. a = int(input(""))
  2. list = []
  3. if(a == 0):
  4. list.append(0)
  5. while(a):
  6. if(a%(-2)==0):
  7. list.append(0)
  8. a//=-2
  9. elif(a%(-2)==-1):
  10. list.append(1)
  11. a -= 1
  12. a//=-2
  13. list.reverse()
  14. for i in list:print(i,end='')
  15. print()

E _Wallace_

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<vector>
  5. using namespace std;
  6. typedef unsigned long long LL;
  7. const int N=260+5;
  8. const LL base=2333333;
  9. char A[N],B[N];
  10. LL pw[N],x[N],y[N];
  11. int la,lb;
  12. vector<LL> h;
  13. bool judge(int len)
  14. {
  15. h.clear();
  16. for(register int i=len;i<=la;i++)
  17. {
  18. LL tmp=x[i]-x[i-len]*pw[len];
  19. h.push_back(tmp);
  20. }
  21. sort(h.begin(),h.end());
  22. for(register int i=len;i<=lb;i++)
  23. {
  24. LL tmp=y[i]-y[i-len]*pw[len];
  25. if(binary_search(h.begin(),h.end(),tmp))
  26. return true;
  27. }
  28. return false;
  29. }
  30. void solve()
  31. {
  32. memset(x,0,sizeof(x));
  33. memset(y,0,sizeof(y));
  34. la=strlen(A+1);
  35. lb=strlen(B+1);
  36. for(register int i=la+1;i<=la*2;i++)
  37. A[i]=A[i-la];
  38. for(register int i=lb+1;i<=lb*2;i++)
  39. B[i]=B[i-lb];
  40. la*=2,lb*=2;
  41. for(register int i=1;i<=la;i++)
  42. x[i]=x[i-1]*base+A[i];
  43. for(register int i=1;i<=lb;i++)
  44. y[i]=y[i-1]*base+B[i];
  45. int L=0,R=min(la,lb)/2,ret=0;
  46. while(L<=R)
  47. {
  48. int mid=(L+R)>>1;
  49. if(judge(mid)) L=mid+1,ret=mid;
  50. else R=mid-1;
  51. }
  52. printf("%d\n",ret);
  53. }
  54. signed main()
  55. {
  56. pw[0]=1llu;
  57. for(register int i=1;i<=260;i++)
  58. pw[i]=pw[i-1]*base;
  59. while(scanf("%s%s",A+1,B+1)!=EOF) solve();
  60. return 0;
  61. }

F _Wallace_

  1. #include<iostream>
  2. #include<cstring>
  3. #include<string>
  4. using namespace std;
  5. const int N=2e3+5;
  6. bool f[N][N];
  7. string a,b,c;
  8. bool solve()
  9. {
  10. if(a.size()+b.size()!=c.size()) return false;
  11. memset(f,0,sizeof(f)),f[0][0]=1;
  12. for(register int i=0;i<=a.size();i++)
  13. for(register int j=0;j<=b.size();j++)
  14. {
  15. if(c[i+j]==a[i])
  16. f[i+1][j]|=f[i][j];
  17. if(c[i+j]==b[j])
  18. f[i][j+1]|=f[i][j];
  19. }
  20. return f[a.size()][b.size()];
  21. }
  22. signed main()
  23. {
  24. while(cin>>a>>b>>c)
  25. if(solve()) cout<<"Yes"<<endl;
  26. else cout<<"No"<<endl;
  27. return 0;
  28. }

G lnkkerst

  1. #include <cstdio>
  2. #include <cctype>
  3. #include <cmath>
  4. #define int long long
  5. int read() {
  6. int ret, fl = 1;
  7. char ch;
  8. while(!isdigit(ch = getchar())) (ch == '-') && (fl = -1);
  9. for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
  10. return ret * fl;
  11. }
  12. void print(int x) {
  13. if(x < 0) putchar('-'), x = -x;
  14. if(x > 9) print(x / 10);
  15. putchar(x % 10 + '0');
  16. }
  17. signed main() {
  18. int t = read();
  19. while(t--) {
  20. int a = read(), b = read(), mul = a * b;
  21. int base = (int)sqrt(mul), ans = (base << 1);
  22. // if(base == a && base == b) --ans;
  23. // // if(abs(a - b) == 1 && (base == a || base == b)) --ans;
  24. // if(base * base == mul - 1) --ans;
  25. // if(base * base == mul) ans -= 2;
  26. if(base * base == mul) {
  27. if(a == b) ans -= 2;
  28. else ans -= 3;
  29. }
  30. else if(base * (base + 1) < mul) ans -= 1;
  31. else ans -= 2;
  32. print(ans), putchar('\n');
  33. }
  34. return 0;
  35. }

H hesorchen

  1. //https://blog.csdn.net/hesorchen
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <cstring>
  5. #include <string>
  6. #include <cstdio>
  7. #include <queue>
  8. #include <cmath>
  9. #include <stack>
  10. #include <map>
  11. #include <set>
  12. using namespace std;
  13. #define ll long long
  14. #define lowbit(a) (a & (-a))
  15. #define mod 1000000007
  16. #define INF 0x3f3f3f3f
  17. #define endl "\n"
  18. #define MAX 100010
  19. string a;
  20. stack<char> st;
  21. string ans;
  22. int main()
  23. {
  24. int n;
  25. cin >> n >> a;
  26. int c = 0;
  27. for (int i = 0; i < n; i++)
  28. {
  29. if (a[i] == '(')
  30. {
  31. c++;
  32. ans = ans + '(';
  33. }
  34. else
  35. {
  36. c--;
  37. if (c>=0)
  38. ans = ans + ')';
  39. else
  40. {
  41. c++;
  42. ans = '(' + ans + ")";
  43. }
  44. }
  45. }
  46. while (c--)
  47. {
  48. ans = ans + ')';
  49. }
  50. cout << ans << endl;
  51. return 0;
  52. }

I 6109118071

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<string.h>
  4. #include<cmath>
  5. #include<map>
  6. #include<bitset>
  7. #include<algorithm>
  8. using namespace std;
  9. typedef unsigned long long ull;
  10. typedef long long ll;
  11. #define M 112300
  12. int n, f[25] = {0, 0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757,59984,0,0,431095,822229};
  13. int main(){
  14. while (~scanf("%d", &n) && n)
  15. printf("%d %d\n", n, f[n]);
  16. }

J Kevin7Zz

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <queue> //priority_queue 优先队列
  6. #include <map>
  7. #include <set> //multiset
  8. #include <vector>
  9. #include <stack>
  10. #include <cmath>
  11. #include <sstream>
  12. #include <string>
  13. #define mod 1000000007
  14. typedef unsigned long long ull;
  15. typedef long long ll;
  16. typedef double db;
  17. const db eps=1e-6;
  18. const int INF=0x3f3f3f3f;
  19. const int N=1e5+5;
  20. using namespace std;
  21. int q,n,k;
  22. string s,t="RGB";
  23. int main(){
  24. cin>>q;
  25. while(q--){
  26. cin>>n>>k;
  27. cin>>s;
  28. int ans=INF;
  29. for(int i=0;i<3;i++){
  30. int cur=0;
  31. vector<int> res(n);
  32. for(int j=0;j<n;j++){
  33. res[j]=(s[j]!=t[(i+j)%3]);
  34. cur+=res[j];
  35. if(j>=k) cur-=res[j-k];
  36. if(j>=k-1) ans=min(ans,cur);
  37. }
  38. }
  39. cout<<ans<<endl;
  40. }
  41. return 0;
  42. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注