为啥大洋里头文件和题目完全不一样啊,痛失100昏
|
|
原来左移运算是int类型的,想不爆要锁longlong
再打cout我是傻逼 |
|
飞快?
|
|
妙啊,先拿来n+m个物品0,再依次用物品1,2...去替换,这样就可以保证取了n+m个
|
|
真·斜率优化
|
|
1
|
|
对于我把a[j]写成a[i]导致我鼓捣了一上午的感受
|
|
这个唐逼始终没看到 $m$ 的数据范围是 $10^6$,导致交了小10次 E
题目 3986 水母序列
2024-07-01 19:40:07
|
|
趁讲之前口胡一个,每个节点记录一个值 dis_i 和 vector 数组 v_i,表示 1 到 i 的最短距离,和通过某一条铁轨,一直不换乘的情况下,走的最长距离,然后显然我们只需要考虑通过某些铁轨能到达 i 且保持最小距离的,同时也只能通过这些铁轨转移,然后转移就按照记录的值和数组简单的转移,基于 dij。
感觉好简陋的思路,但是感觉好对啊:)
题目 3987 熙熙攘攘、我们的城市
2024-07-01 15:38:39
|
|
其实这做法加上归并排序就是一个log了
|
|
我的号很穷
|
|
可以用二项式定理简化
|
|
为什么下边也得写边界啊
(递推这么慢的) |
|
和正确答案一样为什么不过
|
|
#include<iostream>
using namespace std; int n,k,w; long long lis[1000010]; long long sum; int ans; int main(){ freopen("transit.in","r",stdin); freopen("transit.out","w",stdout); scanf("%d%d%d",&n,&k,&w); for(int i=1;i<=n;i++){ long long p;scanf("%lld",&p); lis[i%k]+=p; sum+=p; } ans=w/sum*k; w=w%sum; for(int i=1;i<=k;i++){ if(w<=0) break; w-=lis[i
题目 3976 运送粮食
2024-06-11 19:48:48
|
|
格鲁吉亚是谁,我们家 Alice 呢
题目 2660 [POJ 1704]格鲁吉亚和鲍勃
2024-06-07 08:10:37
|
|
#include<bits/stdc++.h>
using namespace std; int main() { freopen("jisuan.in","r",stdin); freopen("jisuan.out","w",stdout); double a,b; char op; cin>>op>>a>>b; switch(op) { case'+':cout<<fixed<<setprecision(2)<<a+b;break; case'-':cout<<fixed<<setprecision(2)<<a-b;break; case'*':cout<<fixed<<setprecision(2)<<a*b;break; case'/':cout<<fixed<<setprecision(2)<<a/b;break; } return 0; }
题目 3981 ktt
2024-06-04 19:41:02
|
|
注意 $0$
|
|
函数还是挺好用的,不过在不用函数做出来题之前最好别用函数做就是了(简单来说,菜就要多练技术,别成天想着偷懒,就比如我,小菜鸡一枚)
|
|
#include <iostream>
#include <fstream> #include <vector> #include <string> using namespace std; vector<string> v; void d(int k[5][5],int x,int y,int c,string s){ if(c==1){ for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ char a=k[i][j]+48; string ss; ss+=a; if(j+1<5){ d(k,i,j+1,c+1,ss); } if(j-1>-1){ d(k,i,j-1,c+1,ss); } if(i-1>-1){ d(k,i-1,j,c+1,ss); } if(i+1<5){ d(k,i+1,j,c+1,ss); } } } } else if(c==6){ char a=k[x][y]+48; s+=a; int t=0; for(int i=0;i<v.size
题目 562 跳房子
2024-05-28 20:49:33
|