@baobaobear
2020-04-21T12:58:58.000000Z
字数 4017
阅读 231
practise
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue> //priority_queue
#include <map>
#include <set> //multiset set<int,greater<int>>大到小
#include <vector>// vector<int>().swap(v);清空释放内存
#include <stack>
#include <cmath> // auto &Name : STLName Name.
#include <utility>
#include <sstream>
#include <string>//__builtin_popcount(ans);//获取某个数二进制位1的个数
#define mod 1000000007
#define mod9 998244353
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ld;
const db eps=1e-10;
const int INF = 0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
#define rep(i,be,en) for (int i=be;i<=en;i++)
#define per(i,be,en) for (int i=en;i>=be;i--)
using namespace std;
const int N=1e5+7;
char a;
int i,j,n,m=0;
int main(){
while(~scanf("%c",&a)&&a!='@'){
scanf("%d",&n);
getchar();
if(m++){
printf("\n");
}
for(i=0;i<n;i++){
for(j=0; j<n-1-i; j++)
printf(" ");
for(j=0; j<2*i+1; j++)
if(i==n-1)
printf("%c",a);
else if(j==0||j==2*i)
printf("%c",a);
else
printf(" ");
printf("\n");
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n , m , k;
cin >> n >> m >> k;
puts(((n+m+k)&1)?"win":"lose");
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(x) ((int)(x).size())
typedef long long ll;
typedef pair<int,int> pii;
typedef double db;
pii a[10010];
int n,ans;
int main(){
cin>>n;
rep(i,1,n){
cin>>a[i].first;
a[i].second=i;
}
sort(a+1,a+1+n);
rep(i,1,n){
ans+=abs(a[i].second-i);
}
cout<<ans<<endl;
return 0;
}
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 7 + 2e5;
int a[N];
int n;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> a[i];
int ans = 0;
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; ++i) {
int pos = i;
for (int j = a[i] + a[i]; ; j += a[i]) {
pos = lower_bound(a + pos, a + n + 1, j) - a;
ans = max(ans, a[pos - 1] % a[i]);
if (pos > n) break;
}
}
cout << ans << endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(x) ((int)(x).size())
typedef long long ll;
typedef pair<int,int> pii;
typedef double db;
void gg(int x,vector<pii>& v){
rep(i,1,x){
rep(j,i,x){
if(i*i+j*j==x*x){
v.pb({i,j});
}
}
}
}
int xx,yy;
vector<pii> v1,v2;
pii p1,p2;
int main(){
cin>>xx>>yy;
gg(xx,v1);gg(yy,v2);
if((int)v1.size()==0||(int)v2.size()==0){
puts("NO");
return 0;
}
else{
for(auto p1:v1){
for(auto p2:v2){
if(p1.second<p1.first){
swap(p1.first,p1.second);
}
if(p2.second<p2.first){
swap(p2.first,p2.first);
}
if(p1.first*p2.second==p2.first*p1.second){
if(p1.second==p2.first){
swap(p1.first,p1.second);
swap(p2.first,p2.second);
}
printf("YES\n0 0\n%d %d\n%d %d\n",p1.first,p1.second,-p2.second,p2.first);
return 0;
}
}
}
puts("NO");
}
return 0;
}
#include<iostream>
#include<map>
#include<cstdio>
using namespace std;
int t,n,u,v,e,flag;
int fa[200010],p;
int s1[200010],s2[200010],q;
map<int,int> mp;
int fnd(int x){
if(x==fa[x]) return x;
else return fa[x]=fnd(fa[x]);
}
void merge(int x,int y){
fa[fnd(x)]=fnd(y);
return ;
}
int assign(int x){
if(mp[x]){
return mp[x];
}
else{
mp[x]=++p;
return mp[x];
}
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
flag=0;p=0;q=0;
mp.clear();
for(int i=1;i<=2*n+5;i++){
fa[i]=i;
}
for(int i=1;i<=n;i++){
scanf("%d%d%d",&u,&v,&e);
if(e){
merge(assign(u),assign(v));
}
else{
++q;s1[q]=u;s2[q]=v;
}
}
for(int i=1;i<=q;i++){
if(s1[i]==s2[i]){
flag=1;
break;
}
if(mp[s1[i]]==0||mp[s2[i]]==0){
continue;
}
if(fnd(mp[s1[i]]) == fnd(mp[s2[i]])){
flag=1;
break;
}
}
if(flag){
puts("NO");
}
else{
puts("YES");
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(x) ((int)(x).size())
typedef long long ll;
typedef pair<int,int> pii;
typedef double db;
const int mod=1e9+7;
int dp[5010][5010],sum[5010][5010];
char a[5010],b[5010];
int main(){
scanf("%s",a+1);
scanf("%s",b+1);
int n=strlen(a+1),m=strlen(b+1);
rep(i,1,n){
rep(j,1,m){
if(a[i]==b[j]){
dp[i][j]=1+sum[i-1][j-1];
dp[i][j]%=mod;
}
}
rep(j,1,m){
sum[i][j]=sum[i][j-1]+dp[i][j];
sum[i][j]%=mod;
}
}
ll ans=0;
rep(i,1,n){
rep(j,1,m){
ans+=dp[i][j];
ans%=mod;
}
}
cout<<ans<<endl;
return 0;
}