CF75C Modified GCD

这题,貌似无从下手QAQ

但是很简单就可以想到二分吧,正好二分能过QAQ

自然就是先跑一个gcd~~(想必大家都会了)~~

然后…

然后就是一个二分呀QAQ

上代码

#include<bits/stdc++.h>
using namespace std;
int A,B,N,number=0;
int divisor[10000];
int gcd(int x,int y)//gcd
{
	if(y==0)return x;
	return gcd(y,x%y);
}
void solve()
{
	int low,high;
	scanf("%d%d",&low,&high);//每次查询的区间
	int _left=1,_right=number,middle,answer=-1;
	while(_left<=_right)//二分
	{
		middle=(_left+_right)/2;//取mid
		if(divisor[middle]>high/*判断是大了还是小了*/)_right=middle-1;else
		{
			_left=middle+1;
			if(divisor[middle]>=low)answer=divisor[middle];//记录下答案
		}
	}
	printf("%d\n",answer);//输出answer
}
int main()
{
	scanf("%d%d",&A,&B);
	int num=gcd(A,B);//记录下gcd后的值
	int Max=(int)(sqrt(num)),i;
	for(i=1;i<=Max;i++)
	if(num%i==0)//取出因数
	{
		divisor[++number]=i;
		divisor[++number]=num/i;
	}
	sort(divisor+1,divisor+number+1);//排一下序,符合单调性
	scanf("%d",&N);
	for(i=1;i<=N;i++)solve();//解决问题QAQ
}

然后



过了…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
var roi = ee.Geometry.Rectangle(-122.347, 37.743, -122.024, 37.838); var imgCollection = ee.ImageCollection('COPERNICUS/S2_SR') .filterBounds(roi) .filterDate('2021-01-01', '2021-12-31') .select('B.*'); var lc = ee.Image('ESA/WorldCover/v100/2020'); var classValues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100]; var remapValues = ee.List.sequence(0, 10); var label = 'lc'; lc = lc.remap(classValues, remapValues).rename(label).toByte(); var sample = imgCollection.map(function(img) { var sample = img.addBands(lc).stratifiedSample({ numPoints: 100, classBand: label, region: roi, scale: 10, geometries: true }); return sample; }).flatten(); // 向样本中添加一个随机值字段,并使用它将大约80%的特征划分为定型集,20%的特征划分为验证集。 sample = sample.randomColumn(); var trainingSample = sample.filter('random <= 0.8'); var validationSample = sample.filter('random > 0.8'); // 从训练样本中训练SVM分类器(C-SVM分类、投票决策过程、线性核)。 var trainedClassifier = ee.Classifier.libsvm().train({ features: trainingSample, classProperty: label, inputProperties: imgCollection.first().bandNames() }); // 获取有关已训练分类器的信息。 print('Results of trained classifier', trainedClassifier.explain()); // 获取训练样本的混淆矩阵和总体准确性。 var trainAccuracy = trainedClassifier.confusionMatrix(); print('Training error matrix', trainAccuracy); print('Training overall accuracy', trainAccuracy.accuracy()); // 获得验证样本的混淆矩阵和总体精度。 validationSample = validationSample.classify(trainedClassifier); var validationAccuracy = validationSample.errorMatrix(label, 'classification'); print('Validation error matrix', validationAccuracy); print('Validation accuracy', validationAccuracy.accuracy()); // 对来自训练好的分类器的反射图像进行分类。 var imgClassified = imgCollection.map(function(img){ return img.classify(trainedClassifier); }); // 将图层添加到地图。 var classVis = { min: 0, max: 10, palette: ['006400' ,'ffbb22', 'ffff4c', 'f096ff', 'fa0000', 'b4b4b4', 'f0f0f0', '0064c8', '0096a0', '00cf75', 'fae6a0'] }; Map.addLayer(imgClassified, classVis, 'Classification result');将最后的结果导出下载
05-27

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值