Invierno Ejercicio 3

Todos los días Gugu Gu cuco
dos
día 1 y DAY2
están sufriendo de digital a analógico, ya que uno no está con dos realmente
Day3
B Biodiversidad
con la grabación de lo que puede ser un mapa

C hormigas
como el rango 1E6 número de referencia, en este intervalo puede ser omitido de entrada legal o no,
la memoria SET, buscar la primera vacante.
SUM = 0 int;
for (int i = 0; I <len; I ++)
SUM = (SUM << 3.) + (SUM << 1.) + (S [I] - '0');
la cadena en una una forma número entero (de hecho toma 10 orz

F icebergs
dadas las coordenadas de todos los puntos se calcula el área de un polígono.

// ConsoleApplication5.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
using namespace std;
const int maxn = 1000 * 50;
long long ans = 0;
int num;
struct P {
 long long x, y;
}p[maxn];
long long  operator * ( const P & p1, const P &p2) {
 return (p1.x * p2.y - p1.y*p2.x);
}
long long Work() {
 long long res = 0;
 for (int i = 0;i < num;i++) {
  res += p[i] * p[(i + 1) % num];
 }
 return ( res>= 0 ? res : -res);
}
//计算多边形面积
int main() {
 int N;
 //N 个多边形
 cin >> N;
 for (int i = 1;i <= N;i++) {
  cin >> num;
  for (int j = 0;j < num;j++) {
   cin >> p[j].x >> p[j].y;
  }
  ans += 50 * Work();
 }
 cout << long long(ans/100) << endl;
 return 0;
}

Me ratas signo

DÍA
C. Línea lienzo
aspecto de simulación como un clavo es el mejor situado en el cruce, si no, en otro lugar que no hay uña.

#include<iostream>
#include<vector>
#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
int n,p,cnt,tot,ans[5005];
int pin[2005];
struct R {
 int l, r;
 int num;
 int book[4];
}r[1005];
bool cmp(R r1, R r2) {
 return r1.l < r2.l;
}
int main() {
 cin >> n;
 for (int i = 1;i <= n;i++) {
  cin >> r[i].l >> r[i].r;
 }
 cin >> p;
 for (int i = 1;i <= p;i++) {
  cin >> pin[i];
 }
 sort(r + 1, r + 1 + n, cmp);
 sort(pin + 1, pin + 1 + p);
 for (int i = 1;i <= n;i++) {
  for (int j = 1;j <= p;j++) {
   if (pin[j] >= r[i].l && pin[j] <= r[i].r){
    r[i].num++;
    if (r[i].num > 2) {
     cout << "impossible" << endl;
     return 0;
    }
    r[i].book[r[i].num] = pin[j];
   }
  }
 }
 /*
 for (int i = 1;i <= n;i++) {
  cout << i << ":" << r[i].num << endl;
  for (int j = 1;j <= r[i].num;j++) {
   cout << r[i].book[j] << " ";
  }
  cout << endl;
 }*/
  for (int i = 1;i <= n;i++) {
   if (r[i].num == 2)continue;
   if (r[i].num == 1) {
    //cout << "Here" << endl;
    if (r[i].r != r[i+1].l) {
     ans[++tot] = (r[i].book[1] == r[i].r) ? r[i].l + 1 : r[i].r;
    }
    else {
     if (r[i + 1].num < 2 && r[i+1].book[1] != r[i+1].l) {
      ans[++tot] = (r[i].book[1]==r[i].r) ?  r[i].l+1 : r[i].r;
      r[i + 1].book[++r[i + 1].num] = r[i].r;
     }
     else {
      ans[++tot] = (r[i].book[1] == r[i].l+1) ? r[i].r-1 : r[i].l + 1;
     }
    }
   }
   if (r[i].num == 0) {
    if (r[i + 1].l != r[i].r) {
     ans[++tot] = r[i].l+1;
     ans[++tot] = r[i].r;
    }
    else{
     if (r[i + 1].num < 2  && r[i+1].book[1] != r[i+1].l) {
      ans[++tot] = r[i].l + 1;
      ans[++tot] = r[i].r;
      r[i + 1].num++;
      r[i + 1].book[r[i + 1].num] = r[i].r;
     }
     else {
      ans[++tot] = r[i].l + 1;
      ans[++tot] = r[i].l + 2;
     }
    }
   }
  }
  cout << tot << endl;
  for (int i = 1;i <= tot;i++) {
   cout << ans[i] << " ";
  }
  return 0;
}

E se da un número y el número de destino de cuatro
última respuesta se quita puntos más altos y las puntuaciones más bajas se promedian
para convertirse ordenada x1 <x2 <x3 <x4
calculada para cumplir con los criterios de las normas mínimas: 3 * T - x2 - x3 = y
Si y> x3 describe satisfacer
y <x1 no puede satisfacer
los casos restantes pueden ser de salida y.

Figura F tema
compañeros de equipo es grande! Ha Ideas con mayor claridad, es encontrar un árbol de expansión
también empecé a preparar la conectividad condenado. .

#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
int n,m,cnt;
const int maxn = 200005;
struct edge {
 int v, w;
 edge(int _v = 0, int _w = 0) :v(_v), w(_w) {}
};
vector<edge> vv[maxn];
map<int, int > mp;
pair<int,edge> ans[maxn];
bool vis[maxn];
void addedge(int u, int v, int w) {
 vv[u].push_back(edge(v, w));
 vv[v].push_back(edge(u, w));
}
void dfs(int curr) {
 vis[curr] = true;
 for (auto i : vv[curr]) {
  if (!vis[i.v]) {
   ans[cnt++] = make_pair(curr,i);
   dfs(i.v);
  }
 }
 return;
}
int main() {
 scanf_s("%d", &n);
 for (int i = 1;i <= n;i++) {
  scanf_s("%d", &m);
  for (int j = 0;j < m;j++) {
   int x;
   scanf_s("%d", &x);
   if (mp.count(x)) {
    addedge(mp[x], i, x);
   }
   mp[x] = i;
  }
 }
 dfs(1);
 if (cnt != n - 1) {
  cout << "impossible" << endl;
  return 0;
 }
 for (int i = 0;i < cnt;i++) {
  printf("%d %d %d\n",ans[i].first, ans[i].second.v , ans[i].second.w );
 }
 return 0;
}

G problemas de matemáticas
para ser completado

Yo
busco un ensayo de caída, en orden después de su inverso
hacia adelante para encontrar el primer número no se cumple, para una mirada inversa. al revés y determinar qué
contar par de asistencia

Publicado 24 artículos originales · ganado elogios 2 · Vistas 954

Supongo que te gusta

Origin blog.csdn.net/weixin_43521836/article/details/104400055
Recomendado
Clasificación