日常做题(每天一道)十一月的

来源:互联网 发布:矩阵计算 线性代数 编辑:程序博客网 时间:2024/06/06 01:15

11.9

poj1852;

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
 int t;
 cin >> t;
 for (int k = 0; k <= t - 1; ++k)
 {
  int l, n;
  int x[1000001];
  int mint = 0, maxt = 0;
  cin >> l >> n;
  for (int i = 0; i <= n - 1; ++i)
  {
   cin >> x[i];
  };
  for (int i = 0; i <= n - 1; ++i)
  {
   mint = max(mint, min(x[i], l - x[i]));
   maxt = max(maxt, max(x[i], l - x[i]));
  };
  cout << mint << " " << maxt << endl;
 };
 return 0;
}


11.10
抽签问题
四个数a,b,c,d的和为m输出yes否则为no
1,四重循环   n^4
2,三重循环+二分   n^3*logn
     d=m-a-b-c;
     已知a,b,c;可以通过二分找d
3,二重循环+二重求和排序 
     c+d=m-a-b;
     理由同上
11.11
  二分幂  nkoj 2324
#include <iostream>
using namespace std;
long long cheng(int a, int b)
{
 if (b == 0){
  return 1;
 }
 if (b == 1){
  return a;
 }
 long long ans = cheng(a,b/2) % 1000000007;
 ans =ans * ans % 1000000007;
 if ( b % 2 == 1){
  ans =ans * a % 1000000007;
 }
 return ans % 1000000007;
}
int main()
{
 int n;
 cin >> n;
 for (int i = 1; i <= n; ++i){
  int a,b;
  cin >> a >> b;
  cout << cheng(a,b) << endl;
 }
 return 0;
}
11.12
  空缺
11.13
  OSU! nkoj 2322
  贪心,不用存数组,循环读取比较即可;
  还有一种方法是动规,存数组,一遍遍刷新状态,比较low;