2012年11月18日
題是水題。本弱用了爆搜的方法。
首先把特殊情況(Q=0,1)先判掉,從9開(kāi)始往下除,去除Q,除到2,如果最后Q沒(méi)變1就輸出-1。
由于水平問(wèn)題,DEBUG一共用了1小時(shí)TAT。
第一次,是沒(méi)判斷n = 0 和 n = 1 的情況,于是悲劇 。
第二次,是想當(dāng)然的把 n = 0 弄成了 0 ,又一次悲劇 。
第三次,是高估了long的范圍,還是悲劇……。
貼上代碼……(有點(diǎn)丑了)
1 #include<iostream>
2 #define For( i, a, b ) for ( i = a; i <= b; i++ )
3 using namespace std ;
4 typedef long long ll ;
5
6 bool check( long a ) {
7 ll i, tem = 1 ;
8 if ( a > 1 && a < 10 ) return true ;
9 if ( a > 10 )
10 {
11 For( i, 2, 9 ) if ( a%i == 0 ) { tem = 0; break ; }
12 if ( tem ) return false ;
13 }
14 for ( i = 9; i >= 2; i-- )
15 if ( a%i == 0 ) return check( a/i ) ;
16 return false ;
17 }
18
19 ll solve( long a ) {
20 ll i;
21 if ( a > 1 && a < 10 ) return a ;
22 for ( i = 9; i >= 2; i-- )
23 if ( a%i == 0 ) return solve( a/i ) * 10 + i ;
24 }
25
26 int main() {
27 ll num ;
28 cin >>num ;
29 if ( num == 1 ) {
30 cout << num ;
31 return 0 ;
32 }
33 if ( num == 0 ) {
34 cout <<10 ;
35 return 0 ;
36 }
37 if ( !check( num ) ) {
38 cout <<-1;
39 return 0 ;
40 }
41 cout << solve( num ) ;
42 return 0 ;
43 }
2012年11月3日
這個(gè)題據(jù)說(shuō)是水題,有很多種算法
算法1 (樸素):
1、順序檢索每一個(gè)客棧。
2、對(duì)于顏色為k的客棧i,搜索在此之前后顏色同為k的客棧j。
3、搜索到以后查找區(qū)間[i,j]內(nèi)消費(fèi)要求小于等于p的客棧,搜索到則總結(jié)果數(shù)sum+1。
1
#include<iostream>
2
using namespace std ;
3
int main()
4

{
5
long n, k, p ;
6
long color[200000], cost[200000] ;
7
//freopen( "2.in", "r", stdin ) ; freopen( "2.out", "w", stdout ) ;
8
cin >>n >>k >> p ;
9
for ( long i = 0; i < n; i++ ) cin >>color[i] >>cost[i] ;
10
long ans = 0 ;
11
for ( long i = 0; i < n-1; i++ )
12
for ( long j = i+1; j < n ; j++ )
13
if ( color[i]== color[j] )
14
{
15
long temp = 0 ;
16
for ( long cafe = i; cafe <= j && temp == 0 ; cafe++ )
17
if ( cost[cafe] <= p ) temp = 1 ;
18
ans += temp ;
19
}
20
cout << ans ;
21
return 0 ;
22
}
預(yù)期得分40~60
算法二:
當(dāng)然是DP
動(dòng)態(tài)規(guī)劃,設(shè)f[i,j]為前i個(gè)客棧中色調(diào)為j的可行方案,s[i,j]為前i個(gè)客棧中可以與之后色調(diào)為j的客棧搭配的客棧數(shù),即有s[i,j]個(gè)客棧的色調(diào)為j,且該客棧與第i個(gè)客棧之間有符合條件的咖啡店,v[i]為第i個(gè)客棧的最低消費(fèi),c[i]為第i個(gè)客棧的色調(diào)a[i,j]為前i個(gè)客棧中色調(diào)為j的客棧的數(shù)目,則有
s[i,j] = ( v[i] <= p ) ? a[i,j] : s[i-1,j]
f[j] = ( c != j ) ? f[j] : f[j]+s[j]
代碼:
1
#include <cstdio>
2
using namespace std ;
3
int main()
4

{
5
freopen( "2.in", "r", stdin ) ;
6
freopen( "2.out", "w", stdout ) ;
7
long n, m, p, i, j, ans, v = 0, c = 0 ;
8
long a[50] =
{0}, s[50] =
{0}, f[50] =
{0} ;
9
scanf( "%ld%ld%ld", &n, &m, &p ) ;
10
for ( i = 1; i <=n; i++ )
11
{
12
scanf( "%ld%ld", &c, &v ) ;
13
if ( v <= p )
14
for ( j = 0; j < m; j++ ) s[j] = a[j] ;
15
for ( j = 0; j < m; j++ )
16
f[j] = ( c != j ) ? f[j] : f[j]+s[j] ;
17
a[c]++ ;
18
if ( v <= p ) s[c]++ ;
19
}
20
ans = 0 ;
21
for ( j = 0; j < m; j++ ) ans+= f[j] ;
22
printf( "%ld", ans ) ;
23
return 0 ;
24
}
2012年7月16日
直播中……
===========================我是華麗麗的分割線======================
7月14日:
昨天才看到了題目,今天思考了一天,沒(méi)思路,之后和隊(duì)友交流了一下,仍然囧……
==============================================================
7月15日:
今天,和隊(duì)友討論了分工的問(wèn)題,卻發(fā)現(xiàn)不好分,于是打算一人寫(xiě)一個(gè)(囧……)
===============================================================
7月16日:
尼瑪,時(shí)間不多了,得開(kāi)始編程了……
坑爹啊 , 完全沒(méi)思路啊,囧rz
隊(duì)友 oibrusher 神犇已經(jīng)開(kāi)始debug了,跪爛爛爛爛爛爛爛爛爛爛爛爛爛爛爛爛
===============================================================
7月17日:
oibrusher 神犇在今晚的練習(xí)賽中竟然排名第12!!!
亞歷山大
===============================================================
7月22日:
徹底完爆
===============================================================
8月1日晚:
練習(xí)賽,用了oibrusher的程序,還是被虐了,囧
===============================================================
8月2日:
先被刷到了丙組,后來(lái)RP爆發(fā),虐了一次場(chǎng),進(jìn)入乙組,但后來(lái)又被刷到了丙組,直接
淘汰,囧。
浙江也悲劇了,和甘肅同時(shí)被淘汰;
上海隊(duì),因ZX大神用隨機(jī)化在個(gè)人賽中虐場(chǎng),耗費(fèi)大量RP,導(dǎo)致上海每次虐場(chǎng)后突然違
規(guī),被直接淘汰;
鄰省寧夏小宇宙爆發(fā),虐爆全場(chǎng),奪得亞軍,表示跪爛;
范神再次虐場(chǎng),ORZ ;
===============================================================
完了