[关闭]
@baobaobear 2020-03-04T05:51:37.000000Z 字数 5207 阅读 177

练习4

practise


A OUHE_csc

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<cstdio>
  5. #include<vector>
  6. using namespace std;
  7. const int N = 100010;
  8. int f[N];
  9. int main()
  10. {
  11. int n, m;
  12. scanf("%d%d", &n, &m);
  13. while(m --)
  14. {
  15. int x, y;
  16. scanf("%d%d", &x, &y);
  17. if(x == 1 && !y && n != 1 || f[x] && f[x] != y)
  18. {
  19. puts("-1");
  20. return 0;
  21. }
  22. f[x] = y;
  23. }
  24. if(n != 1 && !f[1]) f[1] = 1;
  25. int res = 0;
  26. for(int i = 1; i <= n; i ++)
  27. res = res * 10 + f[i];
  28. printf("%d", res);
  29. return 0;
  30. }

B OUHE_csc

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<cstdio>
  5. #include<vector>
  6. using namespace std;
  7. const int N = 100010;
  8. int w[N];
  9. int main()
  10. {
  11. int t, n = 10;
  12. scanf("%d", &t);
  13. while(t --)
  14. {
  15. int a = 0, b = 0;
  16. for(int i = 0; i < 10; i ++) scanf("%d", &w[i]);
  17. bool flag = true;
  18. for(int i = 0; i < 10; i ++)
  19. {
  20. if(w[i] > a) a = w[i];
  21. else if(w[i] > b) b = w[i];
  22. else{
  23. flag = false;
  24. break;
  25. }
  26. }
  27. if(flag) puts("YES");
  28. else puts("NO");
  29. }
  30. return 0;
  31. }

C 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 set<int>::reverse_iterator rit; for(rit=s.rbegin();rit!=s.rend();rit++)
  8. #include <vector>
  9. #include <stack>
  10. #include <cmath>
  11. #include <utility>
  12. #include <sstream>
  13. #include <string>
  14. #define mod 1000000007
  15. typedef unsigned long long ull;
  16. typedef long long ll;
  17. typedef double db;
  18. const db eps=1e-6;
  19. const int INF=0x3f3f3f3f;
  20. const int N=1e7+5;
  21. using namespace std;
  22. int x,y,z;
  23. char c[N]={0};
  24. int a[N]={0};
  25. int t,n,m,flag=0;
  26. int main(){
  27. scanf("%d",&n);
  28. for(int i=0;i<n;i++){
  29. scanf("%d",&a[i]);
  30. }
  31. sort(a,a+n);
  32. printf("%d",a[0]);
  33. for(int i=1;i<n;i++){
  34. printf(" %d",a[i]);
  35. }
  36. printf("\n");
  37. return 0;
  38. }

D OUHE_csc

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<cstdio>
  5. #include<vector>
  6. using namespace std;
  7. const int N = 2e6 + 10;
  8. int main()
  9. {
  10. int n, m;
  11. while(scanf("%d%d", &m, &n), n | m)
  12. {
  13. int res = 0, x = 1;
  14. while(m + x - 1 <= n)
  15. {
  16. res += x;
  17. x <<= 1;
  18. m <<= 1;
  19. }
  20. res += max(0, n - m + 1);
  21. printf("%d\n", res);
  22. }
  23. return 0;
  24. }

E 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 set<int>::reverse_iterator rit; for(rit=s.rbegin();rit!=s.rend();rit++)
  8. #include <vector>
  9. #include <stack>
  10. #include <cmath>
  11. #include <utility>
  12. #include <sstream>
  13. #include <string>
  14. #define mod 1000000007
  15. typedef unsigned long long ull;
  16. typedef long long ll;
  17. typedef double db;
  18. const db eps=1e-6;
  19. const int INF=0x3f3f3f3f;
  20. const int N=1e5+5;
  21. using namespace std;
  22. int aa[100000]={0},vis[10]={0},bb[100000]={0};
  23. int main(){
  24. int n,a,b,c,flag;
  25. while(~scanf("%d",&n)){
  26. while(n--){
  27. memset(aa,0,sizeof aa);
  28. scanf("%d",&a);
  29. b=a;
  30. flag=0;
  31. while(b>3){
  32. if(flag){
  33. c=0;
  34. for(int i=1;i<=a;i++){
  35. if(aa[i]==0){
  36. c++;
  37. if(c%3==0){
  38. aa[i]=1;
  39. b--;
  40. }
  41. }
  42. }
  43. flag=0;
  44. }else{
  45. c=0;
  46. for(int i=1;i<=a;i++){
  47. if(aa[i]==0){
  48. c++;
  49. if(c%2==0){
  50. aa[i]=1;
  51. b--;
  52. }
  53. }
  54. }
  55. flag=1;
  56. }
  57. }
  58. printf("1");
  59. for(int i=2;i<=a;i++){
  60. if(aa[i]==0) printf(" %d",i);
  61. }
  62. printf("\n");
  63. }
  64. }
  65. return 0;
  66. }

F 6109118071

  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #include<set>
  7. #include<queue>
  8. #include<map>
  9. #define debug(a) cout << "*" << a << "*" << endl
  10. using namespace std;
  11. typedef long long ll;
  12. typedef pair<int, int> P;
  13. int q;
  14. double px[2], py[2], x, y;
  15. double bit(double l, double r)
  16. {
  17. }
  18. int main()
  19. {
  20. double pk;
  21. for (int i = 0; i < 2; i++) scanf("%lf%lf", &px[i], &py[i]);
  22. if ((px[0] - px[1]) && (py[0] - py[1]))
  23. pk = (py[0] - py[1]) / (px[0] - px[1]);
  24. else
  25. pk = 0;
  26. double pb = py[0] - pk * px[0];
  27. scanf("%d", &q);
  28. for (int i = 0; i < q; i++)
  29. {
  30. scanf("%lf%lf", &x, &y);
  31. if (pk)
  32. {
  33. double b = y + 1 / pk * x;
  34. double xx = (b - pb) / (1 / pk + pk);
  35. double yy = pk * xx + pb;
  36. printf("%.8lf %.8lf\n", 2 * xx - x, 2 * yy - y);
  37. }
  38. else
  39. {
  40. if (px[0] == px[1])
  41. {
  42. printf("%.8lf %.8lf\n", 2 * px[0] - x, y);
  43. }
  44. else
  45. {
  46. printf("%.8lf %.8lf\n", x, 2 * py[0] - y);
  47. }
  48. }
  49. }
  50. }

G _Wallace_

  1. #include<iostream>
  2. using namespace std;
  3. signed main()
  4. {
  5. char result;
  6. int L=1,R=1e9;
  7. while(L<=R)
  8. {
  9. int mid=L+(R-L)/2;
  10. cout<<"Q "<<mid<<endl;
  11. cout.flush();
  12. cin>>result;
  13. if(result=='=') return 0;
  14. if(result=='>') L=mid+1;
  15. if(result=='<') R=mid-1;
  16. }
  17. }

H lnkkerst

  1. #include <iostream>
  2. #define int long long
  3. using namespace std;
  4. int a[26];
  5. string str;
  6. int jc(int x) {
  7. return x == 1 || x == 0 ? 1 : x * jc(x - 1);
  8. }
  9. signed main() {
  10. cin >> str;
  11. for(auto i : str) ++a[i - 'a'];
  12. int cnt = 0;
  13. for(int i = 0; i < 26; ++i)
  14. if(a[i] & 1) --a[i], ++cnt;
  15. if(cnt >= 2) {
  16. cout << 0 << endl;
  17. return 0;
  18. }
  19. int ans = jc((int)str.length() >> 1);
  20. for(int i = 0; i < 26; ++i) ans /= jc(a[i] >> 1);
  21. cout << ans << endl;
  22. return 0;
  23. }

I 6109118071

  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #include<set>
  7. #include<queue>
  8. #include<map>
  9. #define debug(a) cout << "*" << a << "*" << endl
  10. using namespace std;
  11. typedef long long ll;
  12. typedef pair<int, int> P;
  13. int inf = 15000;
  14. int mp[10][10], n, m;
  15. void solve()
  16. {
  17. int ans = 100000, od = -1;
  18. for (int k = 0; k < m; k++)
  19. {
  20. for (int i = 0; i < m; i++)
  21. {
  22. for (int j = 0; j < m; j++)
  23. {
  24. if (mp[i][j] > mp[i][k] + mp[k][j])
  25. {
  26. mp[i][j] = mp[i][k] + mp[k][j];
  27. }
  28. }
  29. }
  30. }
  31. for (int i = 0; i < m; i++)
  32. {
  33. int sum = 0;
  34. for (int j = 0; j < m; j++)
  35. {
  36. if (i == j) continue;
  37. sum += mp[i][j];
  38. }
  39. if (sum < ans)
  40. {
  41. ans = sum;
  42. od = i;
  43. }
  44. }
  45. printf("%d %d\n", od, ans);
  46. }
  47. int main()
  48. {
  49. while (~scanf("%d", &n) && n)
  50. {
  51. m = 0;
  52. for (int i = 0; i < 10; i++)
  53. for (int j = 0; j < 10; j++) mp[i][j] = inf;
  54. for (int i = 0; i < n; i++)
  55. {
  56. int a, b, c;
  57. scanf("%d%d%d", &a, &b, &c);
  58. m = max(a, m);
  59. m = max(b, m);
  60. if (mp[a][b] > c)
  61. {
  62. mp[a][b] = c;
  63. mp[b][a] = c;
  64. }
  65. }
  66. m++;
  67. solve();
  68. }
  69. }

J _Wallace_

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<climits>
  4. using namespace std;
  5. const int N=55;
  6. int x[N],y[N];
  7. int n,k;
  8. int val[N],c;
  9. signed main()
  10. {
  11. cin>>n>>k;
  12. for(register int i=1;i<=n;i++)
  13. cin>>x[i]>>y[i];
  14. long long ans=LLONG_MAX;
  15. for(register int a=1;a<=n;a++)
  16. for(register int b=1;b<=n;b++)
  17. for(register int c=1;c<=n;c++)
  18. for(register int d=1;d<=n;d++)
  19. {
  20. int x1=x[a],y1=y[b],x2=x[c],y2=y[d];
  21. if(x1>x2||y1>y2) continue;
  22. int cnt=0;
  23. for(register int i=1;i<=n&&cnt<k;i++)
  24. if(x1<=x[i]&&x[i]<=x2&&y1<=y[i]&&y[i]<=y2)
  25. cnt++;
  26. if(cnt==k) ans=min(ans,(x2-x1)*1ll*(y2-y1));
  27. }
  28. cout<<ans<<endl;
  29. return 0;
  30. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注