Orz hzwer && Jcvb,2333

1 /************************************************************** 2 Problem: 1101 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:6208 ms 7 Memory:1440 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <algorithm> 12 13 using namespace std; 14 const int N = 50005; 15 16 int tot; 17 int u[N], sum[N], p[N]; 18 bool Flag[N]; 19 20 inline int read() { 21 int x = 0; 22 char ch = getchar(); 23 while (ch < '0' || '9' < ch) 24 ch = getchar(); 25 while ('0' <= ch && ch <= '9') { 26 x = x * 10 + ch - '0'; 27 ch = getchar(); 28 } 29 return x; 30 } 31 32 void work(int M) { 33 u[1] = 1; 34 int i, j; 35 for (i = 2; i <= M; ++i) { 36 if (!Flag[i]) 37 p[++tot] = i, u[i] = -1; 38 for (j = 1; i * p[j] <= M; ++j) { 39 Flag[i * p[j]] = 1; 40 if (i % p[j] == 0) { 41 u[i * p[j]] = 0; 42 break; 43 } 44 u[i * p[j]] = -u[i]; 45 } 46 } 47 for (i = 1; i <= M; ++i) 48 sum[i] = sum[i - 1] + u[i]; 49 } 50 51 inline int calc(int n, int m) { 52 if (n > m) swap(n, m); 53 int res = 0, pos, i; 54 for (i = 1; i <= n; i = pos + 1) { 55 pos = min(n / (n / i), m / (m / i)); 56 res += (sum[pos] - sum[i - 1]) * (n / i) * (m / i); 57 } 58 return res; 59 } 60 61 int main() { 62 work(50000); 63 int T = read(), a, b, d; 64 while (T--) { 65 a = read(), b = read(), d = read(); 66 printf("%d\n", calc(a / d, b / d)); 67 } 68 return 0; 69 }
By Xs酱~ 转载请说明
博客地址:http://www.cnblogs.com/rausen
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 为DeepSeek添加本地知识库
· .NET程序员AI开发基座:Microsoft.Extensions.AI
· 精选4款基于.NET开源、功能强大的通讯调试工具
· 数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台
· 大模型工具KTransformer的安装