当前位置: 首页 > news >正文

5.3刷题

P3370 【模板】字符串哈希

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef unsigned long long ull;
int n;
ull myhash(string s){ull code = 0, x = 131, y = 140814840257324663;for(int i = 0; i < s.size(); i++){code = (code * x + (ull)s[i]) % y;}return code;
}
void solve(){ull a[10010], ans, n;string s;cin >> n;for(int i = 0; i < n; i++){cin >> s;a[i] = myhash(s);}sort(a, a + n);ans = unique(a, a + n) - a;cout << ans << endl;
}
void solve1(){ull a = 0xffffffffffffffff;a = a / 131 - 131;cout << a << endl;while(1){int f = 0;for(ull i = 2; i <= a / i; i++){if(a % i == 0){f = 1;break;}}if(!f){cout << a << endl;return;}a--;}
}
signed main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);solve();return 0;
}

P3405 [USACO16DEC] Cities and States S

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
map<pair<int, int>, int>mp;
int myhash(string s){int code = 0;for(int i = 0; i < 2; i++){code = code * 26 + (s[i] - 'A');}return code;
}void solve(){int ans = 0, x, y;string s, c;cin >> n;for(int i = 0; i < n; i++){cin >> c >> s;x = myhash(c);y = myhash(s);if(x == y)continue; mp[{x, y}]++;ans += mp[{y, x}];}cout << ans << endl;
}signed main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);solve(); return 0;
}

相关文章:

  • 多元随机变量协方差矩阵
  • HTTP基础介绍+OSI七层参考模型+HTTP协议介绍
  • linux的时间轮
  • STM32部分:2-1、STM32CubeMX介绍
  • Spring Cache使用
  • Python表达式全解析:从基础到高级
  • Java多语言DApp质押挖矿盗U源码(前端UniApp纯源码+后端Java)
  • 算法每日一题 | 入门-顺序结构-数字反转
  • c++回调函数
  • Python 线程安全机制:Lock、RLock、Semaphore 的使用场景与最佳实践
  • PyTorch_创建01张量
  • Java虚拟线程基础介绍
  • 突破认知边界:神经符号AI的未来与元认知挑战
  • JAVA刷题记录: 递归,搜索与回溯
  • 纯Java实现STDIO通信的MCP Server与客户端验证
  • 普通 html 项目引入 tailwindcss
  • Go小技巧易错点100例(二十八)
  • 应用层自定义协议序列与反序列化
  • 数据赋能(209)——质量管理——时效性原则
  • 模型测试报错:有2张显卡但cuda.device_count()显示GPU卡数量只有一张
  • 魔都眼|西岸国际咖啡生活节:连接艺术、音乐与宠物
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 上海与世界|黄菊与上海建设中国式全球城市
  • 航海王亚洲巡展、工厂店直销……上海多区推出“五五购物节”活动
  • 国务院食安办:加强五一假期食品生产、销售、餐饮服务环节监管
  • 李铁案二审驳回上诉,维持一审有期徒刑20年的判决