day2
t1
#include <bits/stdc++.h> using namespace std; int n,f[1000001]; int maxn,x,y; long long ans; int main() { freopen("stick.in","r",stdin); freopen("stick.out","w",stdout); scanf("%d",&n); maxn=-133; for(int i=1,c;i<=n;i++) { scanf("%d",&c); f[c]++; maxn=max(maxn,c); } for(int i=maxn;i>=1;i--) { if(!f[i]) continue; if(f[i]>=4) {ans+=(long long)i*i;f[i]-=4;i++;continue;} if(f[i]+f[i-1]>=4) { if(f[i]>=2) {ans+=(long long)i*(i-1);f[i]-=2;f[i-1]=f[i-1]+f[i]-2;continue;} else{ans+=(long long)(i-1)*(i-1);f[i-1]-=3;continue;} } if(!f[i-1]) continue; if(i>=3&&f[i-2]&&f[i-1]>=2) { ans+=(long long)(i-1)*(i-2);f[i-1]-=2;f[i-2]--;continue; } } cout<<ans; //longlong 转换 return 0; } //贪心
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> #include<math.h> using namespace std; int b[100001],f[100001],v[100001],cnt,c,n,ans; int maxn=-1; int main() {//输入 scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&c); f[c]++; maxn=max(maxn,c); } //统计 for(int i=maxn;i>=2;i--) if(f[i]%2&&f[i]!=v[i]) { f[i]--;f[i-1]++;v[i-1]++; } for(int i=maxn;i>=2;i--) if(f[i]>=2) {f[i]-=2;b[++cnt]=i;i++;} //计算 sort(b+1,b+cnt+1); for(int i=cnt;i>=2;i-=2) ans+=(long long)(i-1)*i; cout<<ans; return 0 ; }
t2
#include <bits/stdc++.h>
using namespace std;
int n,a[30004],f[30003];
int l[30004],r[30003];
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
return f[x];
}
void bing(int x,int y)//左边是因数
{
int f1=find(x),f2=find(y);
l[f1]=min(l[f2],l[f1]);r[f1]=max(r[f1],r[f2]);
f[f2] =f1;
return ;
}
int main()//可以达到 2n
{
freopen("select.in","r",stdin);
freopen("select.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
l[i]=r[i]=i;f[i]=i;
}
/*无需并查,搜完直接记录就行,枚举最小值。
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int f1=find(i),f2=find(j);
if(f1==f2) {continue;}
if((a[f2]%a[f1])==0) {bing(f1,f2);continue;}
if((a[f1]%a[f2])==0) {bing(f2,f2);continue;}
j=n;
}
for(int j=i-1;j>=1;j--)
{
int f1=find(i),f2=find(j);
if(f1==f2) {continue;}
if((a[f2]%a[f1])==0) {bing(f1,f2);continue;}
if((a[f1]%a[f2])==0) {bing(f2,f2);continue;}
j=0;
}
}
*/
int len=-1;
for(int i=1;i<=n;i++)
len=max(len,r[i]-l[i]+1);
int sum=0,le[30001];
for(int i=1;i<=n;i++)
{
if((r[i]-l[i]+1)==len)
{
sum++;
le[sum]=l[i];
i=r[i];
}
}
printf("%d %d",sum,len);
cout<<endl;
for(int i=1;i<=sum;i++)
{
printf("%d ",le[i]);
}
return 0;
}
//枚举最小值,枚举倍数位置打标机,
t3
#include <bits/stdc++.h> using namespace std; int l,r,p; bool ans[9900000]; void dfs(int a,int b,int t)//90分 if(t>p+1||a>r||b>r) return; ans[a]=1; dfs(a,b+1,t+1); dfs(a*b,b,t+1); return; } int main() { freopen("number.in","r",stdin); freopen("number.out","w",stdout); scanf("%d%d%d",&l,&r,&p); ans[1]=1; dfs(1,1,2); int t=0; for(int j=l;j<=r;j++) if(ans[j]) t++; cout<<t; return 0; } /*分解质因数后,最大指数不超过,50. 64进制 dp for(b-——-——) f[a*b]=f[a]+1;
虽然思路对,只拿了60分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App