@baobaobear
2020-03-04T05:51:37.000000Z
字数 5207
阅读 177
practise
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int N = 100010;
int f[N];
int main()
{
int n, m;
scanf("%d%d", &n, &m);
while(m --)
{
int x, y;
scanf("%d%d", &x, &y);
if(x == 1 && !y && n != 1 || f[x] && f[x] != y)
{
puts("-1");
return 0;
}
f[x] = y;
}
if(n != 1 && !f[1]) f[1] = 1;
int res = 0;
for(int i = 1; i <= n; i ++)
res = res * 10 + f[i];
printf("%d", res);
return 0;
}
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int N = 100010;
int w[N];
int main()
{
int t, n = 10;
scanf("%d", &t);
while(t --)
{
int a = 0, b = 0;
for(int i = 0; i < 10; i ++) scanf("%d", &w[i]);
bool flag = true;
for(int i = 0; i < 10; i ++)
{
if(w[i] > a) a = w[i];
else if(w[i] > b) b = w[i];
else{
flag = false;
break;
}
}
if(flag) puts("YES");
else puts("NO");
}
return 0;
}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue> //priority_queue 优先队列
#include <map>
#include <set> //multiset set<int>::reverse_iterator rit; for(rit=s.rbegin();rit!=s.rend();rit++)
#include <vector>
#include <stack>
#include <cmath>
#include <utility>
#include <sstream>
#include <string>
#define mod 1000000007
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
const db eps=1e-6;
const int INF=0x3f3f3f3f;
const int N=1e7+5;
using namespace std;
int x,y,z;
char c[N]={0};
int a[N]={0};
int t,n,m,flag=0;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n);
printf("%d",a[0]);
for(int i=1;i<n;i++){
printf(" %d",a[i]);
}
printf("\n");
return 0;
}
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int N = 2e6 + 10;
int main()
{
int n, m;
while(scanf("%d%d", &m, &n), n | m)
{
int res = 0, x = 1;
while(m + x - 1 <= n)
{
res += x;
x <<= 1;
m <<= 1;
}
res += max(0, n - m + 1);
printf("%d\n", res);
}
return 0;
}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue> //priority_queue 优先队列
#include <map>
#include <set> //multiset set<int>::reverse_iterator rit; for(rit=s.rbegin();rit!=s.rend();rit++)
#include <vector>
#include <stack>
#include <cmath>
#include <utility>
#include <sstream>
#include <string>
#define mod 1000000007
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
const db eps=1e-6;
const int INF=0x3f3f3f3f;
const int N=1e5+5;
using namespace std;
int aa[100000]={0},vis[10]={0},bb[100000]={0};
int main(){
int n,a,b,c,flag;
while(~scanf("%d",&n)){
while(n--){
memset(aa,0,sizeof aa);
scanf("%d",&a);
b=a;
flag=0;
while(b>3){
if(flag){
c=0;
for(int i=1;i<=a;i++){
if(aa[i]==0){
c++;
if(c%3==0){
aa[i]=1;
b--;
}
}
}
flag=0;
}else{
c=0;
for(int i=1;i<=a;i++){
if(aa[i]==0){
c++;
if(c%2==0){
aa[i]=1;
b--;
}
}
}
flag=1;
}
}
printf("1");
for(int i=2;i<=a;i++){
if(aa[i]==0) printf(" %d",i);
}
printf("\n");
}
}
return 0;
}
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set>
#include<queue>
#include<map>
#define debug(a) cout << "*" << a << "*" << endl
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
int q;
double px[2], py[2], x, y;
double bit(double l, double r)
{
}
int main()
{
double pk;
for (int i = 0; i < 2; i++) scanf("%lf%lf", &px[i], &py[i]);
if ((px[0] - px[1]) && (py[0] - py[1]))
pk = (py[0] - py[1]) / (px[0] - px[1]);
else
pk = 0;
double pb = py[0] - pk * px[0];
scanf("%d", &q);
for (int i = 0; i < q; i++)
{
scanf("%lf%lf", &x, &y);
if (pk)
{
double b = y + 1 / pk * x;
double xx = (b - pb) / (1 / pk + pk);
double yy = pk * xx + pb;
printf("%.8lf %.8lf\n", 2 * xx - x, 2 * yy - y);
}
else
{
if (px[0] == px[1])
{
printf("%.8lf %.8lf\n", 2 * px[0] - x, y);
}
else
{
printf("%.8lf %.8lf\n", x, 2 * py[0] - y);
}
}
}
}
_Wallace_
#include<iostream>
using namespace std;
signed main()
{
char result;
int L=1,R=1e9;
while(L<=R)
{
int mid=L+(R-L)/2;
cout<<"Q "<<mid<<endl;
cout.flush();
cin>>result;
if(result=='=') return 0;
if(result=='>') L=mid+1;
if(result=='<') R=mid-1;
}
}
#include <iostream>
#define int long long
using namespace std;
int a[26];
string str;
int jc(int x) {
return x == 1 || x == 0 ? 1 : x * jc(x - 1);
}
signed main() {
cin >> str;
for(auto i : str) ++a[i - 'a'];
int cnt = 0;
for(int i = 0; i < 26; ++i)
if(a[i] & 1) --a[i], ++cnt;
if(cnt >= 2) {
cout << 0 << endl;
return 0;
}
int ans = jc((int)str.length() >> 1);
for(int i = 0; i < 26; ++i) ans /= jc(a[i] >> 1);
cout << ans << endl;
return 0;
}
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set>
#include<queue>
#include<map>
#define debug(a) cout << "*" << a << "*" << endl
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
int inf = 15000;
int mp[10][10], n, m;
void solve()
{
int ans = 100000, od = -1;
for (int k = 0; k < m; k++)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
if (mp[i][j] > mp[i][k] + mp[k][j])
{
mp[i][j] = mp[i][k] + mp[k][j];
}
}
}
}
for (int i = 0; i < m; i++)
{
int sum = 0;
for (int j = 0; j < m; j++)
{
if (i == j) continue;
sum += mp[i][j];
}
if (sum < ans)
{
ans = sum;
od = i;
}
}
printf("%d %d\n", od, ans);
}
int main()
{
while (~scanf("%d", &n) && n)
{
m = 0;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++) mp[i][j] = inf;
for (int i = 0; i < n; i++)
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
m = max(a, m);
m = max(b, m);
if (mp[a][b] > c)
{
mp[a][b] = c;
mp[b][a] = c;
}
}
m++;
solve();
}
}
_Wallace_
#include<iostream>
#include<algorithm>
#include<climits>
using namespace std;
const int N=55;
int x[N],y[N];
int n,k;
int val[N],c;
signed main()
{
cin>>n>>k;
for(register int i=1;i<=n;i++)
cin>>x[i]>>y[i];
long long ans=LLONG_MAX;
for(register int a=1;a<=n;a++)
for(register int b=1;b<=n;b++)
for(register int c=1;c<=n;c++)
for(register int d=1;d<=n;d++)
{
int x1=x[a],y1=y[b],x2=x[c],y2=y[d];
if(x1>x2||y1>y2) continue;
int cnt=0;
for(register int i=1;i<=n&&cnt<k;i++)
if(x1<=x[i]&&x[i]<=x2&&y1<=y[i]&&y[i]<=y2)
cnt++;
if(cnt==k) ans=min(ans,(x2-x1)*1ll*(y2-y1));
}
cout<<ans<<endl;
return 0;
}