a. free cash
題目大意,輸入第一行輸入n,然後輸入n行,每行輸入兩個數h 和 m ,要求把出現次數最多的h和m的次數輸出。思路:此題運用雜湊法,先令乙個數tmp = h * 100 + m ,然後建立乙個陣列vis[2505],因為h <= 24 , m <= 60 ,所以tmp < 2505 ,最後用vis[tmp] ++ 來統計次數,找出vis陣列中的最大值即可。
以下是**:
#include#include#include#include#include#include#include#include#includeusing namespace std ;
const int maxn = 2505 ;
int vis[maxn] ;
int main()
}printf("%d\n", max) ;
}return 0 ;
}
b.young table
仔細讀這道題才發現,原來題目中沒有要求使操作的次數最少,只要完成就可以。此題麻煩了一些,請看**:
#include#include#include#include#include#include#include#include#includeusing namespace std ;
const int maxn = 55 ;
int s[maxn][maxn] ;
int t[maxn * maxn] ;
int t2[maxn * maxn] ;
int x1[maxn * maxn] ;
int y1[maxn * maxn] ;
int x2[maxn * maxn] ;
int y2[maxn * maxn] ;
struct node
vert[maxn * maxn] ;
int vis[maxn * maxn] ;
bool cmp(int a , int b)
int main()
int j ;
int cnt = 0 ;
for(i = 0 ; i < n ; i ++)
}sort(t2 , t2 + cnt , cmp) ;
int sum = 0 ;
int cnt2 = 0 ;
for(i = 0 ; i < n ; i ++)
cnt2 ++ ;}}
printf("%d\n" , sum) ;
for(i = 0 ; i < sum ; i ++)
return 0 ;
}
c.primes on interval
這道題一般的做法會超時,想了一會,有所改進,運用離線演算法統計素數個數,結果還是超時,最後終於想到了二分,呵呵。請看**:
#include
#include#include#include#include#include#include#include#includeusing namespace std ;
const int maxn = 1000006 ;
int sushu[maxn] ;
int sm[maxn] ;
void prim() // 素數表
}}void tong()
sm[i] = sumt ;
}}int main()
}if(pan == 0)
else
}if(pan2 == 0 )
printf("-1\n") ;
else
printf("%d\n" , right) ;
}return 0 ;
}
題目d很認真的讀,就是讀不懂,題目e暫時不會。
CF328解題報告
a題 iq test 很水的題,就是給出數列的前四項,判斷出是等比還是等差。求下一項。code include using namespace std int main else cout 42 endl return 0 b題 sheldon and ice pieces 題意 有一排卡片,每張卡...
cf1199解題報告
目錄發一波水題。模擬 include define ll long long using namespace std const int 1e6 7 int n,x,y,a int main return 0 小學幾何題。輸出lf格式不對錯了幾發 include define ll long lon...
CF 1087解題報告
做出 t1 rating 97 想起幾個月前做不出t1還是有點小搞笑呀2333 雙指標 特判 發現k特別小,列舉剩餘系 還要判斷是否是能被n整除 移項發現可以算出整除是多少 然後 整除 k 剩餘數 n 算出答案,複雜度 o k 大力貪心 先算出a b之間的路徑,由於路徑不唯一 每次抉擇最多有兩種,變...