[城市修建]
这里需要注意的是INT_MAX这些值在
#include
#include
using namespace std;
typedef long long LL;
int main(){
int N;
cin>>N;
LL x,y;
LL minX=INT_MAX,minY=INT_MAX,maxX=INT_MIN,maxY=INT_MIN;
for(int i=0;i>x>>y;
minX=min(minX,x);
maxX=max(maxX,x);
minY=min(minY,y);
maxY=max(maxY,y);
}
LL dx=maxX-minX;
LL dy=maxY-minY;
LL area=dx>dy?dx*dx:dy*dy;
cout<
[圈地运动]
圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~
小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:
1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。
2.买了的木棍都必须用在圈地运动中。
那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?
#include
#include
using namespace std;
int main(){
int n;
cin>>n;
int i=1,curSum=0,curMax=INT_MIN,a;
for(;i<=n;i++){
cin>>a;
curSum+=a;
curMax=max(curMax,a);
if(curSum-curMax>curMax)
{
cout<n)
cout<<-1<
[Bittttttts]
vector的正向遍历:
for(it=KPrime.begin();it!=KPrime.end();it++)
vector的逆向遍历:
for(it=LK.end()-1;it>=LK.begin();it--)
vector的初始化:
//一维:
vector LK;
//一维(长度初始化为n+1,初值都为1)
vector flower(n+1,1);
//二维
vector> ans(n+1,vector(n+1,1));
算法:
#include
#include
#include
using namespace std;
typedef long long LL;
/*
十进制查询范围1,100
对应八进制表达64 100
八进制表达的搜索范围100 144
7 77 777
*/
//将10进制数转为K进制数
void toKPrime(LL n,vector& KPrime,int K)
{
while(n){
KPrime.push_back(n%K);
n/=K;
}
reverse(KPrime.begin(),KPrime.end());
}
//将k进制表达的数字转为10进制
LL toDecimal(vector &KPrime,int K)
{
LL ans=0;
vector::iterator it;
for(it=KPrime.begin();it!=KPrime.end();it++)
{
ans=ans*K+*it;
}
return ans;
}
void print(vector& arr){
vector::iterator it;
for(it=arr.begin();it!=arr.end();it++)
{
cout<<*it<<" ";
}
cout<& arr){
vector::iterator it;
for(it=arr.begin();it!=arr.end();it++)
{
cout<<*it<<" ";
}
cout<>q;
while(q>0){
cin>>k>>l>>r;
LL tmp=0;
vector record;
while(tmp<=r){
record.push_back(tmp);
tmp=tmp*k+k-1;
}
//print(record);
if(record.at(record.size()-1)>=l)
{
cout< LK,RK;
toKPrime(l,LK,k);
//print(LK);
toKPrime(r,RK,k);
//print(RK);
LL ans=l;
vector::iterator it;
for(it=LK.end()-1;it>=LK.begin();it--) //从低位将数字改成7直到大于r为止
{
int tmp=*it;
*it=k-1;
if(toDecimal(LK,k)>r)
{
*it=tmp;
cout<
[看花]
#include
#include
#include
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
vector flower(n+1);
for(int i=1;i<=n;i++)
scanf("%d",&flower[i]);
vector> ans(n+1,vector(n+1,1));
for(int i=1;i<=n;i++){
set kind;
kind.insert(flower[i]);
for(int j=i;j<=n;j++){
kind.insert(flower[j]);
ans[i][j]=kind.size();
}
}
int Q,l,r;
cin>>Q;
while(Q-->0){
scanf("%d %d" , &l, &r);
cout<