codeforces——数学
codeforces 805A http://codeforces.com/problemset/problem/805/A
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* 题意:输入两个整数l,r,让你找一个因子 使得[l,r]里面所有的数,能整除这个因子的数最多,输出这个因子 如果答案有多个,输出任意一个 */ #include<iostream> #include<cstdio> #include<cstring> using namespace std; int l,r,cnt1,cnt2; int main() { scanf("%d%d",&l,&r); if(l!=r) printf("2\n"); else printf("%d\n",l); return 0; }
codeforces 804E http://codeforces.com/problemset/problem/804/E (数学构造)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* 题意:给出一个1到n的排列,问每两个位置都进行一次交换最终排列不变是否可能, 如果可能输出交换顺序。 表示并不会,看了题解后还是一知半解,代码实现也是不懂... 好吧我智商低,太弱了 大概就是4的倍数一定行,模4余1一定行(以为4一定行,第五个数跟每个都换一遍貌似也行) 反正好神奇,好扯淡... */ #include <bits/stdc++.h> #define xx first #define yy second #define mp make_pair #define pb push_back #define fill( x, y ) memset( x, y, sizeof x ) #define copy( x, y ) memcpy( x, y, sizeof x ) using namespace std; typedef long long LL; typedef pair < int, int > pa; inline int init() { int sc = 0, f = 1; char ch = getchar(); while( ch < '0' || ch > '9' ) { if( ch == '-' ) f = -1; ch = getchar(); } while( ch >= '0' && ch <= '9' ) sc = sc * 10 + ch - '0', ch = getchar(); return sc * f; } int main() { int n = init(); if( n % 4 > 1 ) return puts( "NO" ), 0; puts( "YES" ); for( int i = n % 4 ; i < n ; i += 4 ) { for( int j = 0 ; j < i ; j++ ) printf( "%d %d\n", j + 1, i + 1 ); printf( "%d %d\n", i + 1, i + 2 ); for( int j = i - 1 ; ~j ; j-- ) printf( "%d %d\n", j + 1, i + 2 ); for( int j = 0 ; j < i ; j++ ) printf( "%d %d\n", j + 1, i + 3 ); printf( "%d %d\n", i + 3, i + 4 ); for( int j = i - 1 ; ~j ; j-- ) printf( "%d %d\n", j + 1, i + 4 ); printf( "%d %d\n", i + 1, i + 4 ); printf( "%d %d\n", i + 2, i + 3 ); printf( "%d %d\n", i + 1, i + 3 ); printf( "%d %d\n", i + 2, i + 4 ); } }
折花枝,恨花枝,准拟花开人共卮,开时人去时。
怕相思,已相思,轮到相思没处辞,眉间露一丝。