1.输入只有一行,包含两个整数a,b,要求输出[a,b]内所有的回文数,a,b<10^6
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int d[10];
bool isok(int x){
int cur=0;
while(x){
d[cur++]=x%10;
x/=10;
}
int i=0,j=cur-1;
while(j>i){
if(d[i++]!=d[j--]) return 0;
}
return 1;
}
int a,b;
int main(){
while(scanf("%d%d",&a,&b)==2){ //只有 一组数据,为了调试方便,
if(a>b) swap(a,b);
for(int i=a;i<=b;++i){
if(isok(i)) printf("%d\n",i);
}
}
return 0;
}
VS:窗口—> 重置窗口布局
2.在一个上凸函数上均匀采样得到{f(i)|i=1,2…N},有M次询问,每次询问输入两个整数a,b,求{f(i)-a*i-b|i=1,2…N}的最大值。
输入:第一行,N和M,其中N,M<5e9
然后N行,按顺序输入f(i)
然后M行,每行两个整数 a,b