P4139TriangleXor
数学 #计数 #容斥
分为 个部分计算
- 上面的按奇偶性分类
- 下面的按每一层容斥,即
- 左右直接对每一块计算面积
// Author: xiaruize const int INF = 0x3f3f3f3f3f3f3f3f; const int MOD = 1000000007; const int N = 2e5 + 10; int n; double res = 0; double calc(int i) { return (double)i / ((double)n + (double)i) * (double)i / 2.0; } void solve() { cin >> n; for (int i = 2; i <= n; i += 2) { res = res + (double)(n - i + 1) * (calc(i) - calc(i - 1) * 2 + calc(i - 2)); } // debug(res); rep(i, 1, (n + 1) / 2) { res += ((double)n / 4) * (((double)(i * 2 - 1) / ((double)n + (double)(i * 2 - 1)) - (double)(i * 2 - 2) / ((double)n + (double)(i * 2 - 2)))) * 2.0 * 2.0; } if (n % 2 == 0) res += (double)n / 4.0; cout << (int)floor(res) << endl; } #ifndef ONLINE_JUDGE bool end_of_memory_use; #endif signed main() { // freopen(".in","r",stdin); // freopen(".out","w",stdout); ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int testcase = 1; // cin >> testcase; while (testcase--) solve(); #ifndef ONLINE_JUDGE cerr << "Memory use:" << (&end_of_memory_use - &start_of_memory_use) / 1024.0 / 1024.0 << "MiB" << endl; cerr << "Time use:" << (double)clock() / CLOCKS_PER_SEC * 1000.0 << "ms" << endl; #endif return 0; }
本文作者:xiaruize's Blog
本文链接:https://www.cnblogs.com/xiaruize/p/18121247
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步