#include #include using namespace std; int main() { int c, b; cin >> c >> b; vector types(c); // 用来统计每种类型的个数 int max_num = 0; // 有效类型中包含数据最多的类型的个数 for (int i = 0; i < 10; i++) { int a; cin >> a; int mod = (a & 0xff) + ((a >> 8) & 0xff) + ((a >> 16) & 0xff) + ((a >> 24) & 0xff); // 四个字节相加 if (mod % b < c) // 有效类型 { types[mod % b]++; // 统计该类型的个数 max_num = max(max_num, types[mod % b]); // 更新最多数据的有效类型的个数 } } cout << max_num << endl; return 0;

对一个数据a进行分类分类方法为:此数据a四个字节大小的四个字节相加对一个给定的值b取模如果得到的结果小于一个给定的值C则数据a为有效类型其类型为取模的值;如果得到的结果大于或者等于C则数据a为无效类型比如一个数据a=0x01010101 b=3按照分类方法计算0×01+0×01+0×01+0×01 3=1 所以如果C=2则此a为有效类型其类型为1 如果a=1则此a为无效类型;又比如一一个数据a=0

原文地址: https://www.cveoy.top/t/topic/fH79 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录