diff options
| author | crupest <crupest@outlook.com> | 2021-11-19 11:57:35 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-11-19 11:57:35 +0800 | 
| commit | 205f243379919b7830726f9dcc4ae7d33c84e857 (patch) | |
| tree | b18b433bcd9d1d9bb38e6da18c880f8fddb1cea9 /works/life | |
| parent | 3c9273676b785c6ba4fc11e865851ba2319f41bf (diff) | |
| download | crupest-205f243379919b7830726f9dcc4ae7d33c84e857.tar.gz crupest-205f243379919b7830726f9dcc4ae7d33c84e857.tar.bz2 crupest-205f243379919b7830726f9dcc4ae7d33c84e857.zip  | |
import(life): Add algorithm experiment 5.
Diffstat (limited to 'works/life')
| -rw-r--r-- | works/life/algorithm-experiment/.DS_Store | bin | 6148 -> 0 bytes | |||
| -rw-r--r-- | works/life/algorithm-experiment/5.1a.cpp | 25 | ||||
| -rw-r--r-- | works/life/algorithm-experiment/5.1b.cpp | 25 | ||||
| -rw-r--r-- | works/life/algorithm-experiment/5.1c.cpp | 24 | ||||
| -rw-r--r-- | works/life/algorithm-experiment/5.2a.cpp | 31 | ||||
| -rw-r--r-- | works/life/algorithm-experiment/5.2b.cpp | 28 | 
6 files changed, 133 insertions, 0 deletions
diff --git a/works/life/algorithm-experiment/.DS_Store b/works/life/algorithm-experiment/.DS_Store Binary files differdeleted file mode 100644 index 58e50b9..0000000 --- a/works/life/algorithm-experiment/.DS_Store +++ /dev/null diff --git a/works/life/algorithm-experiment/5.1a.cpp b/works/life/algorithm-experiment/5.1a.cpp new file mode 100644 index 0000000..d0d442f --- /dev/null +++ b/works/life/algorithm-experiment/5.1a.cpp @@ -0,0 +1,25 @@ +#include <bitset> +#include <ios> +#include <iostream> + +std::bitset<10000000> f; + +int main() { +  std::ios_base::sync_with_stdio(false); +  std::cin.tie(nullptr); + +  while (true) { +    long long current; +    std::cin >> current; + +    auto b = f[current - 10000000]; +    if (b) { +      std::cout << current; +      break; +    } else { +      b = true; +    } +  } + +  return 0; +} diff --git a/works/life/algorithm-experiment/5.1b.cpp b/works/life/algorithm-experiment/5.1b.cpp new file mode 100644 index 0000000..a6dd32e --- /dev/null +++ b/works/life/algorithm-experiment/5.1b.cpp @@ -0,0 +1,25 @@ +#include <bitset> +#include <ios> +#include <iostream> + +std::bitset<10000000> f; + +int main() { +  std::ios_base::sync_with_stdio(false); +  std::cin.tie(nullptr); + +  long long current; + +  while (std::cin >> current) { +    f[current - 10000000].flip(); +  } + +  for (int i = 1; i < 10000000; ++i) { +    if (f[i]) { +      std::cout << i + 10000000; +      break; +    } +  } + +  return 0; +} diff --git a/works/life/algorithm-experiment/5.1c.cpp b/works/life/algorithm-experiment/5.1c.cpp new file mode 100644 index 0000000..f38d199 --- /dev/null +++ b/works/life/algorithm-experiment/5.1c.cpp @@ -0,0 +1,24 @@ +#include <bitset> +#include <ios> +#include <iostream> + +std::bitset<10000000> f; + +int main() { +  std::ios_base::sync_with_stdio(false); +  std::cin.tie(nullptr); + +  long long current; + +  while (std::cin >> current) { +    f[current - 10000000].flip(); +  } + +  for (int i = 1; i < 10000000; ++i) { +    if (!f[i]) { +      std::cout << i + 10000000 << '\n'; +    } +  } + +  return 0; +} diff --git a/works/life/algorithm-experiment/5.2a.cpp b/works/life/algorithm-experiment/5.2a.cpp new file mode 100644 index 0000000..f458a90 --- /dev/null +++ b/works/life/algorithm-experiment/5.2a.cpp @@ -0,0 +1,31 @@ +#include <iostream> +#include <unordered_map> +#include <vector> + +int main() { +  std::vector<long long> votes; + +  long long v; +  while (std::cin >> v) { +    votes.push_back(v); +  } + +  std::unordered_map<long long, long long> counts; +  for (auto v : votes) { +    counts[v]++; +  } + +  long long max_count = 0; +  long long max_id = 0; + +  for (auto it = counts.begin(); it != counts.end(); ++it) { +    if (it->second > max_count) { +      max_count = it->second; +      max_id = it->first; +    } +  } + +  std::cout << max_id << std::endl; + +  return 0; +}
\ No newline at end of file diff --git a/works/life/algorithm-experiment/5.2b.cpp b/works/life/algorithm-experiment/5.2b.cpp new file mode 100644 index 0000000..d062ae0 --- /dev/null +++ b/works/life/algorithm-experiment/5.2b.cpp @@ -0,0 +1,28 @@ +#include <iostream> +#include <unordered_map> +#include <vector> + +int main() { +  std::vector<long long> votes; + +  long long v; +  while (std::cin >> v) { +    votes.push_back(v); +  } + +  std::unordered_map<long long, long long> counts; +  for (auto v : votes) { +    counts[v]++; +  } + +  // Get ids with votes greater than half of the total votes. +  long long half_votes = votes.size() / 2; + +  for (auto it = counts.begin(); it != counts.end(); ++it) { +    if (it->second > half_votes) { +      std::cout << it->first << std::endl; +    } +  } + +  return 0; +}  | 
