10 2013 档案
摘要:题意:给一束激光,一个三棱柱,三棱柱会折射光,问这束激光最终是否会和y = 0相交;分析:模拟题,为了方便处理折射角,事先求出每条边的向内和向外的法向量;findpoint : 找第一交点step1: 判断激光是否和三角形有规范相交;step2: 第一次折射;step3:第二次折射,可能无法折射; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 const int N = 100+10; 10 const double e...
阅读全文
摘要:CF348http://codeforces.com/contest/348/problem/C题意:一个n个元素的序列,m个下标集合,q个操作,两种操作1:给你一个集合,求序列中下标在集合中的元素的sum;2:给你一个集合,把序列中下标在集合中的元素都加X; 1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 typedef long long LL; 11 const int N = 100000+10; 12 con...
阅读全文
摘要:hdu 4676http://acm.hdu.edu.cn/showproblem.php?pid=4676题意:给你1..n的排列,给一个区间[L,R],返回gcd(a[i],a[j]) L<=i<j<=R的和;分析:对于一个区间[L,R],我们设g(d) 表示在区间内gcd(a[i],a[j]) = d的个数 ;f(d) 表示在区间内gcd(a[i],a[j]) = d的倍数的个数;显然 f(d) = sigma{ d | n, g(n) };通过莫比乌斯反演得到 g(d) = sigma{ d | n, mu(n/d) * f(n) };其中mu()是莫比乌斯函数;g(
阅读全文

浙公网安备 33010602011771号