A. Odd Palindrome
题意 : 回文子串长度为奇数 输出Odd 否则 输出Ornot
思路 : 实际上若字符串长度为奇数输出Odd 偶数出Or not
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
while(cin >>s){
if(s.size() % 2 != 0)
cout <<"Odd." <<endl;
else
cout <<"Or not." <<endl;
}
}
C. Fear Factoring
题意 : 输入数字a, b。求出a, b之间数字因数和 的 和
思路:分块除法 注意此题卡ull
代码1:
#define ull unsigned long long
using namespace std;
ull f(ull n)
{
ull ans=0;
ull left,right;
for(left = 1; left <= n; left = right + 1){
right = n / (n / left);
ans += (n / left) * (left + right) * (right-left+1)/2;
//这里用的是等差数列 left是首项,right是末项
}
return ans;
}
int main(){
ull a,b;
while(~scanf("%llu%llu", &a, &b))
printf("%llu\n", f(b)-f(a-1));
return 0;
代码2
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#define Maxn 1000005
#define LL unsigned long long
using namespace std;
LL calc(LL n) {
LL Ans = 0;
for(LL l=1; l<=n; l++) {
LL t = n / l;
LL r = n / t;
Ans += (l + r) * (r - l + 1) / 2 * t;
l = r;
}
return Ans;
}
int main() {
LL a,b,Ans = 0;
while(scanf("%lld %lld",&a,&b) != EOF) {
cout << calc(b) - calc(a - 1) << endl;
}
return 0;
}
E. Straight Shot
题意 : 一道物理题,机器人从左边飞到右边 过人行道时有竖直分量的速度影响机器人,给定飞行的方向,使机器人可以飞到右边,求飞到右边的时间
思路:水平与竖直列出啊方程 注意sidewalk的速度是加到Vr上的
代码 :
#include <bits/stdc++.h>
using namespace std;
// 速度分解 先求时间 再检验
// 输出了 nan ???
double n, x, v;
double ll