zoukankan      html  css  js  c++  java
  • 1012-留心

    这回全是低错……

    T1

    找最大平方因子即可。

    没开龙龙见祖宗

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <cmath>
    #define LL long long
    #define N 11111111
    using namespace std;
    LL n,ans;
    int main(){
    //	freopen("tri.in" ,"r",stdin);
    	freopen("tri2.out","w",stdout);
    	while(1){
    		ans=0;
    		scanf("%lld",&n);
    		if(n==0)return 0;
    		LL lim=sqrt(n)+1;
    		for(LL i=lim;i>=2;i--){
    			while(n%(i*i)==0){
    				ans+=i-1;
    				n/=(i*i);
    			}
    			if(n==1)break;
    		}
    		printf("%lld
    ",ans*8);
    	}
    }
    

    T2

    $Theta(N^2)$卡常剪枝直接过$emm$

    #include <iostream>
    #include <cstring>
    #include <climits>
    #include <cstdint>
    #include <cstdio>
    #include <array>
    #define N 44444
    #define LL long long
    
    using namespace std;
    
    array<LL,N> dp,arr,vis;
    volatile int_fast32_t cn,vn,tot;
    int main(){
    	scanf("%d%d",&cn,&vn);
    	for(int i=1;i<=cn;i++)
    		scanf("%lld",&arr[i]);
    	dp[0]=0;
    	for(register int i=1;i<=cn;i++){
    		tot=0;
    		dp[i]=LLONG_MAX;
    		for(register int j=i;j>=1;j--){
    			if(vis[arr[j]]!=i){
    				vis[arr[j]]=i;
    				tot++;
    			}
    			dp[i]=min(dp[i],dp[j-1]+1ll*tot*tot);
    			if(dp[i]<=1ll*tot*tot)break;
    		}
    	}
    	printf("%lld
    ",dp[cn]);
    }
    

    T3

    <题解>

  • 相关阅读:
    HDU 1496 Equations
    HDU 1060 Leftmost Digit
    HDU 1391 Number Steps
    HDU 1212 Big Number
    HDU 1491 Octorber 21st
    HDU 1339 A Simple Task
    HDU 2710 Max Factor
    HDU 1176 免费馅饼
    FORTH基本堆栈操作
    FORTH 安装使用
  • 原文地址:https://www.cnblogs.com/kalginamiemeng/p/11664734.html
Copyright © 2011-2022 走看看