@baobaobear
2020-02-11T03:46:45.000000Z
字数 8573
阅读 176
contest
puluo
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d%d%d",&a,&b,&t);
printf("%d\n",(t/a)*b);
}
puluo
#include<stdio.h>
int main()
{
int n,a,sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a);
sum+=a;
}
sum-=n;
printf("%d\n",sum);
}
puluo
#include<stdio.h>
#include<stdlib.h>
int a[100005];
int inc(const void *a, const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,m,min=-1;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
qsort(a,n,sizeof(int),inc);
for(int i=0;i<=(n-m);i++)
{
if(min==-1)min=a[i+m-1]-a[i];
if(min>a[i+m-1]-a[i])min=a[i+m-1]-a[i];
}
printf("%d\n",min);
}
lnkkerst
#include <cstdio>
#include <cctype>
#include <algorithm>
#define int long long
struct Monster {
int x, h, dam;
} a[200010];
int n, d, s, ans = 0;
int read() {
int ret, f = 1;
char ch;
while(!isdigit(ch = getchar())) (ch == '-') && (f = -1);
for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
return ret * f;
}
void print(int x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
bool cmp(Monster a, Monster b) {
return a.x < b.x;
}
signed main() {
n = read(), d = read(), s = read();
for(int i = 1; i <= n; ++i) a[i].x = read(), a[i].h = read();
std::sort(a + 1, a + n + 1, cmp);
for(int i = 1; i <= n; ++i) {
a[i].dam += a[i - 1].dam;
int l = i, r = i + (d << 1);
if(r > n) r = n;
while(l < r) {
int mid = (l + r + 1) >> 1;
if(a[mid].x <= a[i].x + (d << 1)) l = mid;
else r = mid - 1;
}
int tmp = (a[i].h - a[i].dam * s + s - 1) / s;
if(tmp < 0) continue;
ans += tmp, a[i].dam += tmp, a[l + 1].dam -= tmp;
}
print(ans);
return 0;
}
lnkkerst
#include <cstdio>
#include <cctype>
#include <cstring>
#define int long long
struct Trie {
int cnt, root, go[8000000][10], val[8000000];
Trie() {
memset(go, 0, sizeof(go));
memset(val, 0, sizeof(val));
root = cnt = 0;
}
void add(int num, int v) {
int now = root;
while(num) {
int k = num % 10;
if(!go[now][k]) go[now][k] = ++cnt;
now = go[now][k], num /= 10;
}
val[now] += v;
}
int query(int num) {
int now = root;
while(num) {
int k = num % 10;
if(!go[now][k]) return 0;
now = go[now][k], num /= 10;
}
return val[now];
}
} b;
int n, k, ans = 0;
int fs[200010];
int read() {
int ret, f = 1;
char ch;
while(!isdigit(ch = getchar())) (ch == '-') && (f = -1);
for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
return ret * f;
}
void print(int x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
signed main() {
n = read(), k = read();
for(int i = 1; i <= n; ++i) fs[i] = fs[i - 1] + read();
b.add(0, 1);
int j = 0;
for(int i = 1; i <= n; ++i) {
if(i >= k) b.add((fs[j] - j + k) % k, -1), ++j;
ans += b.query((fs[i] - i + k) % k);
b.add((fs[i] - i + k) % k, 1);
}
print(ans);
return 0;
}
1292224662
#include<bits/stdc++.h>
using namespace std;
int a,b;
char mp[105][105];
int main(){
cin>>a>>b;
for(int i=1;i<=50;i++){
for(int j=1;j<=100;j++){
mp[i][j]='.';
}
}
for(int i=51;i<=100;i++){
for(int j=1;j<=100;j++){
mp[i][j]='#';
}
}
a--;b--;
for(int i=1;i<=49&&b;i+=2){
for(int j=1;j<=100&&b;j++){
if(mp[i-1][j]!='#'&&mp[i][j-1]!='#'){
mp[i][j]='#';b--;
}
}
}
for(int i=52;i<=100&&a;i+=2){
for(int j=1;j<=100&&a;j++){
if(mp[i-1][j]!='.'&&mp[i][j-1]!='.'){
mp[i][j]='.';a--;
}
}
}
puts("100 100");
for(int i=1;i<=100;i++){
puts(mp[i]+1);
}
return 0;
}
541907010220
#include<iostream>
using namespace std;
int a[500001];
#define inf 0x3f3f3f3f
int main()
{
int n,s,i,j,ans=inf;
cin>>s>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int qq=ans;
int sum=0;
int l=1;
for(i=1;i<=n;i++)
{
if(sum<s)
sum+=a[i];
while(sum>=s)
{
ans=min(ans,i-l+1);
sum-=a[l];
l++;
}
if(i<l)
i++;
}
if(ans==qq)cout<<0;
else cout<<ans;
return 0;
}
hesorchen
#include <iostream>
#include <cstring>
#include <cmath>
#include <queue>
#include <string>
#include <algorithm>
using namespace std;
#define ll long long
char mp[2005][2005];
int mp_zong[2005][2005];
int mp_heng[2005][2005];
int n, m;
int maxx = 0;
int main()
{
ll maxx_ans = 0;
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> mp[i] + 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (mp[i][j] == '.')
{
if (mp_zong[i][j] == 0)
{
int num = 0;
int minn = 1, maxx = n;
for (int k = i; k <= n; k++)
if (mp[k][j] == '#')
{
maxx = k - 1;
break;
}
else
num++;
for (int k = i - 1; k >= 1; k--)
if (mp[k][j] == '#')
{
minn = k + 1;
break;
}
else
num++;
for (int l = minn; l <= maxx; l++)
mp_zong[l][j] = num;
}
if (mp_heng[i][j] == 0)
{
int num = 0;
int minn = 1, maxx = m;
for (int k = j; k <= m; k++)
if (mp[i][k] == '#')
{
maxx = k - 1;
break;
}
else
num++;
for (int k = j - 1; k >= 1; k--)
if (mp[i][k] == '#')
{
minn = k + 1;
break;
}
else
num++;
for (int l = minn; l <= maxx; l++)
mp_heng[i][l] = num;
}
// printf("%d %d %d %d %d\n", i, j, mp_heng[i][j], mp_zong[i][j], mp_heng[i][j] + mp_zong[i][j] - 1);
if (mp_heng[i][j] + mp_zong[i][j] - 1 > maxx_ans)
maxx_ans = mp_heng[i][j] + mp_zong[i][j] - 1;
}
cout << maxx_ans << endl;
return 0;
}
1292224662
#include<bits/stdc++.h>
using namespace std;
int m,k;
int main(){
cin>>m>>k;
int tmp=(1<<m)-1;
if(m==0&&k==0){
puts("0 0");
return 0;
}
if(k<=tmp){
if(m==1&&k==1){
puts("-1");
return 0;
}
if(!k){
for(int i=0;i<=tmp;i++){
printf("%d %d%c",i,i,(i==tmp)?'\n':' ');
}
}
else{
printf("0 %d 0 ",k);
for(int i=1;i<=tmp;i++){
if(i==k) continue;
printf("%d ",i);
}
printf("%d ",k);
for(int i=tmp;i>=1;i--){
if(i==k) continue;
printf("%d ",i);
}putchar('\n');
}
}
else{
puts("-1");
}
return 0;
}
1292224662
#include<bits/stdc++.h>
using namespace std;
typedef double db;
typedef long long ll;
ll n,xx[10],yy[10];
db ans;
ll dis(int i,int j){
return (xx[i]-xx[j])*(xx[i]-xx[j])+(yy[i]-yy[j])*(yy[i]-yy[j]);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>xx[i]>>yy[i];
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
ans+=sqrt(dis(i,j));
}
}
printf("%.10f\n",(db)2/n*ans);
return 0;
}
1292224662
#include<bits/stdc++.h>
using namespace std;
int h,w,n;
char mp[30][30];
int vis[30][30],dis[30][30];
int f(int x,int y){
return (x-1)*w+y;
}
bool ok(int x,int y){
if(x==0||x>h||y==0||y>w||vis[x][y]||mp[x][y]=='#')
return false;
return true;
}
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
queue<int> qx,qy;
void bfs(){
while(!qx.empty()){
int xx=qx.front(),yy=qy.front();
qx.pop();qy.pop();
for(int o=0;o<4;o++){
int xto=xx+dx[o],yto=yy+dy[o];
if(ok(xto,yto)){
dis[xto][yto]=min(dis[xto][yto],dis[xx][yy]+1);
vis[xto][yto]=1;
qx.push(xto);qy.push(yto);
}
}
}
}
int main(){
cin>>h>>w;
for(int i=1;i<=h;i++){
scanf("%s",mp[i]+1);
}
int mx=0;
for(int i=1;i<=h;i++){
for(int j=1;j<=w;j++){
if(mp[i][j]=='#'){
continue;
}
memset(vis,0,sizeof(vis));
memset(dis,0x3f3f3f3f,sizeof(dis));
qx.push(i);qy.push(j);
dis[i][j]=0;vis[i][j]=1;
bfs();
int mmx=-1;
for(int p=1;p<=h;p++){
for(int q=1;q<=w;q++){
if(mp[p][q]=='#')continue;
mmx=max(mmx,dis[p][q]);
}
}
mx=max(mx,mmx);
}
}
cout<<mx<<endl;
return 0;
}
xiaofan7
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <algorithm>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <iomanip>
#if __cplusplus >= 201103L
#include <unordered_map>
#include <unordered_set>
#endif
#define ls x*2
#define rs x*2+1
#define fi first
#define se second
#define ll long long
#define pb push_back
#define vi vector<int>
#define lowbit(x) x&(-x)
#define pii pair<int,int>
#define umap unordered_map
#define uset unordered_set
#define all(x) x.begin(),x.end()
#define mem(a,b) memset(a,b,sizeof(a))
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0);
using namespace std;
const int INF = 0x3f3f3f3f;
ll get(ll a) {
if(a%4==1)
return 1;
else if(a%4==2)
return a+1;
else if(a%4==3||a==0)
return 0;
else
return a;
}
int main() {
IOS;
#ifdef xiaofan
freopen("in.txt","r",stdin);
#endif
ll a,b;
cin>>a>>b;
ll ans=get(b)^get(a-1);
if(a==0){
if(b==0)ans=0;
else ans=get(b);
}
cout<<ans<<endl;
#ifdef xiaofan
cerr<<"Time elapsed: "<<1.0*clock()/CLOCKS_PER_SEC<<"s.\n";
#endif
return 0;
}
puluo
#include<stdio.h>
#include<math.h>
#define N 100000000
#define M 100005
int main()
{
int n;
double x[M],y[M];
char c[M];
double minS=-1,S1,S2,l=0,r=N;
double minl1=N,maxr1=-N,maxu1=-N,mind1=N,xx1,yy1,move1=0;
double minl2=N,maxr2=-N,maxu2=-N,mind2=N,xx2,yy2,move2=N;
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%lf%lf %c",&x[i],&y[i],&c[i]);
for(int k=0;k<=10000&&(move2-move1>0.00000000001);k++)
{
minl1=N,maxr1=-N,maxu1=-N,mind1=N;
minl2=N,maxr2=-N,maxu2=-N,mind2=N;
move1=(r/3+2*l/3),move2=(2*r/3+l/3);
for(int i=0;i<n;i++)
{
xx1=xx2=x[i];
yy1=yy2=y[i];
if(c[i]=='U')
{
yy1+=move1;
yy2+=move2;
}
if(c[i]=='D')
{
yy1-=move1;
yy2-=move2;
}
if(c[i]=='L')
{
xx1-=move1;
xx2-=move2;
}
if(c[i]=='R')
{
xx1+=move1;
xx2+=move2;
}
if(xx1<minl1)minl1=xx1;
if(xx1>maxr1)maxr1=xx1;
if(yy1<mind1)mind1=yy1;
if(yy1>maxu1)maxu1=yy1;
if(xx2<minl2)minl2=xx2;
if(xx2>maxr2)maxr2=xx2;
if(yy2<mind2)mind2=yy2;
if(yy2>maxu2)maxu2=yy2;
}
S1=(maxr1-minl1)*(maxu1-mind1);
S2=(maxr2-minl2)*(maxu2-mind2);
if(S1<minS||minS==-1)minS=S1;
if(S2<minS||minS==-1)minS=S2;
if(S1>S2)l=move1;
else r=move2;
}
printf("%.10f\n",minS);
}
1292224662
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[10010];
ll fac[1000010];
const ll mod=1e9+7;
ll sqr(ll x){ //sqr(5)=2,sqr(10)=3
ll lft=0,rht=1e5;
while(rht-lft>1){
ll mid=(rht+lft)>>1;
if(mid*mid<=x){
lft=mid;
}
else{
rht=mid;
}
}
return lft;
}
ll qp(ll a,ll b,ll mod){
ll ans=1;
while(b){
if(b&1)
ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
ll getInv(ll x,ll p){
return qp(x,p-2,p);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
int tmp=a[i],bound=sqr(a[i]);
for(int j=2;j<=bound;j++){
if(tmp%j==0){
ll save=0;
while(tmp%j==0){
tmp/=j;
save++;
}
fac[j]=max(fac[j],save);
j=1;bound=sqr(tmp);
}
}
if(tmp!=1){
fac[tmp]=max(fac[tmp],1ll);
}
}
ll sum=1;
for(int i=2;i<=1000005;i++){
sum=sum*qp(i,fac[i],mod)%mod;
}
ll ans=0;
for(int i=1;i<=n;i++){
ans=ans+getInv(a[i],mod)*sum%mod;
ans%=mod;
}
cout<<ans<<endl;
return 0;
}